У меня есть файл:
$ cat test.csv
hello foo
needed
bar
blah
blah
bar
hello foo
needed
bar
blah
hello foo
needed
hello foo
needed
bar
blah
Мне нужно извлечь строки, содержащие «полосу» и строку, расположенную рядом с «привет», но не строку «привет». Пока я могу извлечь, как показано ниже, но не могу игнорировать строки приветствия. Я могу попробовать распаковать с другим awk, но интересно, есть ли один лайнер, который может позаботиться об этом в одном go?
$ awk '/hello|bar/;/hello/{getline;print}' test.csv
hello foo
needed
bar
bar
hello foo
needed
bar
hello foo
needed
hello foo
needed
bar
EDIT: ожидаемый результат -
needed
bar
bar
needed
bar
needed
needed
bar