grep - печатать строки раньше, не печатать совпадения

Как легко напечатать строку над матчем и пропустить сам матч?grep -A, -B а также-o Опция не решить это. Может быть, некоторыеawk магия?

например:

$ cat foo.txt
bar
foo
baz
foo

$ cat foo.txt | grep foo-SOMETHING
bar
baz

редактировать

если в строках 2 и 3 указано «foo», то должны быть напечатаны строки 1 и 2 (хотя я здесь не очень строг)

Дополнительная функция: рассмотрим пример:

bar
foo
baz
foo
foo

Это должно в идеале вернуться

bar
baz
foo

Ответы на вопрос(3)

Ваш ответ на вопрос