Почему повторное резервирование ZVOL уменьшает доступное пространство родителя, даже если оно меньше, чем пространство, на которое уже ссылается ZVOL?

Конвейеры, как правило, должны быть короткими, и большинство вещей, которые вы делаете для получения значения для count, могут быть выполнены в одной awkпрограмме, включая цикл и оператор if.

awk 'FNR == 1 || !/FATAL ERROR/ { count = 0 }
     /FATAL ERROR/              { ++count }
     count == 2                 { print FILENAME }'./*

Это запускает одну awkпрограмму для всех не -скрытых файлов в текущем каталоге.

Программа сбросит свою переменную countв ноль, если мы находимся на первой строке нового файла или , если текущая строка не соответствует шаблону FATAL ERROR.

Если строка соответствует шаблону FATAL ERROR, значение переменной countувеличивается.

Если значение переменной countдостигает 2, печатается имя текущего файла.

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

awk 'FNR == 1       { count = 0; do_print = 1 }
     !/FATAL ERROR/ { count = 0 }
     /FATAL ERROR/  { ++count }
     count == 2 && do_print { print FILENAME; do_print = 0 }'./*

или с GNU awk(, используя nextfile, чтобы перейти к следующему файлу):

awk 'FNR == 1 || !/FATAL ERROR/ { count = 0 }
     /FATAL ERROR/              { ++count }
     count == 2 && do_print     { print FILENAME; nextfile }'./*

Относится к циклу вашей оболочки:

0
28.09.2020, 09:40
0 ответов

Теги

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