Архив за день: 18.11.2014

Смотрим размер файла в бесконечном цикле

Для подсчёта количества байт, символов, слов и строк в юникосоподобных операционных системах предназначена программа 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