LINUX.ORG.RU

AWK

 


0

1

Есть очень большей текстовый лог файл dhcpd.leases.
Как при помощи awk «вытащить» блоки текста между двумя патернами содержащими третий патерн?
Сервер обслуживает более трехсот подсетей.
Или как вытащить только те блоки между строками «lese» и закрывающей скобкой «}», содержащие определенную дату выдачи этого lease.

Перемещено leave из admin


$ perl -nle 'print if ((/start/.../end/) && /^mark/) ' /tmp/woah 
mark: dsa
$ cat /tmp/woah 
asd
asd
start
mark: dsa
asd
end
mbmn
anonymous ()
Ответ на: комментарий от anonymous

Не взлетело, затираю последний патерн показывает блоки от «lease» до закрываюшей скобки «}». Добавляю && /starts [0-9] 2017\/05\11/ выбирает только строчки с датой выдачи лиза.

zus ()
Ответ на: комментарий от anonymous

Выбрать блоки/абзацы текста начинающиеся со строки «lease» и заканчивающиеся строкой «}», но толко те в которых есть строка «starts 2017/11/05» (например) чего непонятно? Даже приблизительного кода нет.

zus ()
Ответ на: комментарий от Zmicier

Лизес не причем, сама идея как это сделать. А там хоть «Войну и мир» парсь.

zus ()
Ответ на: комментарий от unterwulf

Спасибо, я чот не допер ТАК парсить :) все получилось.

zus ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.