Можно ли выполнить команду (запустить повторно)? как следовать за файлом, используя tail -f?

10

У меня есть скрипт, который производит файл «Detail.out». Я знаю, что скрипт завершается всякий раз, когда файл содержит определенное количество строк (примерно 21025). Поэтому я сижу в командной строке:

[me@somewhere myDir]$ wc -l */Detail.out
  21025 A/Detail.out
  21025 B/Detail.out
  21025 C/Detail.out
  12995 D/Detail.out
  10652 E/Detail.out
   3481 F/Detail.out
  21027 G/Detail.out
  21025 H/Detail.out
  21025 I/Detail.out
  ...   ...

Я привык tail -fсмотреть конкретный файл, но я хотел бы следить за выводом wc -l */Detail.outкоманды, показанной выше. Это возможно? В настоящее время я использую tcshв Ubuntu 11.04, если это имеет значение.

М. Тиббитс
источник

Ответы:

18

Попробуйте watchкоманду, хотя я подозреваю, что почти каждый написал свою версию в тот или иной момент. (Дешевая версия есть while :; do clear; "$@"; sleep 5; done.)

geekosaur
источник
0

Не уверен, что вы это знаете, но вы также можете перенаправить вывод программы в файл. См. Http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html Таким образом, другой способ может состоять в том, чтобы просто перенаправить вывод в файл, а затем использовать хвост в этом файле, как вы уже привыкли делать ,

$ find . -name "Detail.out" | xargs wc -l >> detail-out-list.txt

А в другом терминале вы можете бегать $ tail -f detail-out-list.txtтак, как привыкли.

Как отметил Келеб, это оставляет некоторый файл, вокруг которого может быть то, что вы хотите (для дальнейшей проверки этого файла или иметь некоторую историю) или нет, и ничто не будет выполняться периодически, как это watchделает для вас.

datentyp
источник
Это вообще не решает вопрос OP, а просто переводит работу в другую команду и требует для запуска и очистки целого нового слоя.
Калеб
@Caleb: Мне не ясно, почему это такой ужасный ответ. Выходной файл может быть в / tmp, поэтому нет необходимости его очищать. Я не думаю, что вопрос был "как я могу запустить команду несколько раз?" но «как я могу следовать команде, которая запускается повторно?». Так что, насколько я могу видеть, похоже, что это отвечает на вопрос ОП ... ладно, при более внимательном прочтении, я думаю, вопрос неоднозначен, как в настоящее время опубликовано: означает ли "(запускать многократно)" (что выполняется повторно ) "или" (то есть, как запустить его несколько раз?) "?
иконоборчество