Привет.
Подскажите по задаче одной.
Есть скрипт он мониторинг ssl срок у доменов.
Так вот я пытаюсь от сортировать скрипт от определенного регистратора.
Если совпадения по регистратору есть (REG), то две верхние строки вместе названием регистратора нужно убрать.
Вроде же egrep -B 2 должен учитывать две строки выше, но что то не получается.
Написала вот такую красивую вещь. Удаляются три строки только по шаблону последней.
В буфере постоянно находятся три строки. В каждом цикле в конвейере удаляется первая и добавляется в хвост следующая:
Но на фряхе если идет с последней строкой команда добавления N то выполнение прерывается без вывода буфера.
Теряется хвост. После гнутого седа, на каждом шагу чистая засада.
bars
При загрузке строки в буфер соответствующей шаблону /^Domain/ выполняется группа команд { ;}. В данном случае команда N означает добавление следующей строки к существующей в буфере через разделитель \n. А значит две команды N;N в итоге дадут в буфере 3 строки разделённые символом \n. Шаблон /\nREG= R3$/ из-за якоря $ применяется к последней строке в буфере, если он совпадает все три строки "удаляются" командой d. На самом деле здесь программа работает не совсем корректно по условию задачи. Она исходит от совпадения от строки "Domain...", что при определенном формате выходного потока может дать неверный результат.
Последний раз редактировалось olecya 02.09.2021 12:46, всего редактировалось 1 раз.
bars
При загрузке строки в буфер соответствующей шаблону /^Domain/ выполняется группа команд { ;}. В данном случае команда N означает добавление следующей строки к существующей в буфере через разделитель \n. А значит две команды N;N в итоге дадут в буфере 3 строки разделённые символом \n. Шаблон /\nREG= R3$/ означает шаблон к последней строке в буфере, если он совпадает все три строки удаляются командой d