2012-04-23 11 views
3

Я хочу сохранить вывод PRINTF в массив, как показано ниже:Как получить выход системы в awk?

op[i] = system("printf \"%d\\n\" \"" SQ substr($1,i,1) "\"") 

но когда я называю их, они просто 0?!

Знаете ли вы, почему !?

+0

'системы()' возвращает 0, следовательно, это то, что вы получите. Вам нужно будет использовать поток, чтобы получить фактический вывод в виде строки. Кроме того, printf является системной командой? Если вы пытаетесь использовать функцию C++ для printf, вы не должны использовать 'system()'. – Griffin

+0

У awk есть собственная функция printf ИЛИ вы можете использовать 'string' printf, то есть 'ar [0] = sprintf (.....)' – shellter

+0

@Griffin: Существует ['printf'] (http: // пабы .opengroup.org/onlinepubs/9699919799/utilities/printf.html), которая немного похожа на «echo» на то, что она передает данные на стандартный вывод, но под управлением строки формата, такой как 'printf()' (функция). –

ответ