Для подсчёта количества байт, символов, слов и строк в юникосоподобных операционных системах предназначена программа wc
. Иногда хочется запускать её, например, раз в секунду, чтоб следить за выполнением какого-нибудь долгого процесса.
Сделал по-быстрому скрипт, который просто вызывает wc
и выводит его результат, пока пользователю не надоест и он не нажмёт Ctrl+C
#!/usr/bin/perl
print STDERR "Press ^C to exit\n";
my $cmd_line = 'wc ' . join ' ', @ARGV;
my $out;
while (1) {
$out = `$cmd_line`;
chomp $out;
print "\cM$out";
sleep 1;
}
Запустить можно, например, так:
wcloop -l some-big-file.txt
update/19.11.2014: Мне подсказали пару других, более изящных методов:
Командой watch:
watch -n 1 wc -l ФАЙЛ
Без watch, циклом на баше:
while true; do wc ФАЙЛ | tr '\n' '\r'; sleep 1; done