2013-05-03 6 views
1

У меня очень длинная команда, запущенная в очень большом файле. Он включает команды sort, uniq, grep и awk в единственной команде, которая передает результаты одной команды другой.Выполнение команды, выполняющейся в unix

Как только я выдаю эту команду для выполнения, командная строка не вернется назад, пока команда не будет полностью выполнена.

Есть ли способ узнать, каков ход выполнения команды с точки зрения того, сколько ее выполнения она завершила или что-то подобное, что дает нам представление о том, какая часть конкретной команды внутри этой основной команды завершена?

+1

Реально, нет - нет простого способа измерить ход конвейера команд, который вы описываете. Сорт, вероятно, самый продолжительный этап; вы можете каким-то образом контролировать его с помощью временных файлов, которые он создает, но это не является предрешенным. Это общая проблема; нет простого способа измерить ход большинства команд. –

+0

@Gabe: Не могли бы вы дать более полное представление о том, что Perl способен делать в этом контексте? –

+0

Вы можете использовать 'tail -f' в каком-то другом терминале, чтобы посмотреть на эволюцию некоторых выходных файлов. –

ответ

-1

Первоначально Perl был создан потому, что AWK не был достаточно силен для этой задачи. С такими командами, как sort и grep, и синтаксис, очень похожий на AWK, не сложно перевести командную строку с помощью этих программ в короткий скрипт Perl.

Преимущество Perl в том, что вы можете легко сообщать о ходе выполнения вашего скрипта с помощью операторов print. Например, вы можете указать, когда загружался входной файл, когда сортировка была завершена, и т. Д.

+3

В то время, как я занимаюсь евангелизацией, это не ответ на его вопрос. – tink

+0

@tink: Так как это именно то, как я решил проблему, я думаю, что это как можно ближе к ответу, поскольку я могу написать, учитывая, что OP не дал свой источник. – Gabe

1

Не зная точно, что вы делаете, я не могу сказать, будет ли это работать для вас, но посмотрите на pv. Это может соответствовать счету.

Смежные вопросы