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

Если вы используете разделитель, он не будет рассматривать пробелы между вашими цитатами как отдельные слова.

Таким образом, мы можем использовать любой разделитель, который, по вашему мнению, не будет отображаться во входной строке.

echo 'M "tmux split-window subcommand.md"' | awk -F: '{printf("\t%s: %s %s\n", FNR, $1, $2)}' 1: M "tmux split-window subcommand.md"

1
25.09.2020, 21:14
3 ответа

Лучшее, что я смог придумать, это использовать tail -fвместе с awkиlogtop:

tail -f * | awk '/^==> / {a=substr($0, 5, length-8); next} {print a}' | logtop

Это приводит к чему-то вроде этого :enter image description here

1
18.03.2021, 23:02

Я бы использовалwatch(читатьman watch):

watch --differences wc -l *.log
3
18.03.2021, 23:02

Подход грубой силы с использованием только обязательных инструментов Unix:

while :; do wc -l *; echo "-"; sleep 1; done |
awk '/^-/{print; next} {print $2, $1, $1-prev[$2]; prev[$2]=$1}'

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

Обработайте вывод awk, чтобы он подходил, и вы можете передать его в sort -k3,3n, чтобы отсортировать его по своему усмотрению, и добавлять tput clear;перед каждым вызовомwc -l(или печатать связанную escape-последовательность из awk каждый раз, когда он читает первую строку после -), если вы просто хотите видеть текущий вывод каждый раз в цикле.

2
18.03.2021, 23:02

Теги

Похожие вопросы