Вентилятор ЦП работает очень быстро, даже с 0% ЦП [closed]

Вы можете сделать все это с помощью awk с помощью одной команды, если у вас не слишком много файлов для обработки в командной строке:

awk --posix 'FNR==1 {f=FILENAME; sub("_firewall_rule", "", f); print f "\n"} /([0-9]{1,3}\.){3}[0-9]{1,3}/ {print $0 "\n"}' *_firewall_rule

для моей версии gawk Мне нужен был --posix , чтобы фигурные скобки работали правильно в регулярном выражении.

Как это работает

Каждый раз при запуске нового файла FNR будет 1, поскольку это первая запись в файле, поэтому мы получим имя файла из встроенной FILENAME , удалите часть _firewall_rule и напечатайте то, что осталось, с пустой строкой

. Затем в любой строке, которая выглядит примерно как IPv4-адрес, мы напечатаем эту строку с дополнительной новой строкой.

Если вам не нужны лишние пустые строки между всеми IP-адресами и именами и т. Д., Вы можете удалить части \ n печати и фактически упростить часть шаблона следующим образом:

awk --posix 'FNR==1 {f=FILENAME; sub("_firewall_rule", "", f); print f} /([0-9]{1,3}\.){3}[0-9]{1,3}/ ' *_firewall_rule
2
13.01.2014, 03:06
0 ответов

Теги

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