Сопоставление регулярных выражений по нескольким строкам с 3 значениями [дубликат]

0
26.05.2017, 19:05
1 ответ
awk '
/foo/ { save=1 }
/baz/ { p=1 }
/bar/ { if (p) { print out ORS $0; } p=0; save=0; out="" }
{ if (save) { if (out) { out = out ORS $0 } else { out = $0 } } }
' input

Начать сохранение строк, если мы видим /foo/; решить, стоит ли их печатать, если мы видим /baz/, и как только мы увидим /bar/, напечатать сохраненные строки, если мы увидели /baz/.

Я не могу найти более умного способа предотвратить появление пустой строки (ORS) в начале переменной "out" без ее ручного тестирования (как это делаю я).

1
28.01.2020, 02:46

Теги

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