-1

Допустим, у меня есть текстовый файл с содержанием:

foo
bar
whatever

something I don't know
bar2
whatever

И, как результат выполнения grep whatever myfile.txt (и / или sed и / или awk), я хотел бы иметь:

foo
something I don't know

Я попытался использовать опцию -B 2 но это выводит как foo и bar .
Не могу сделать ... | grep -v bar как есть много разных записей.

2 ответа2

0

Не grep, но должно работать:

Файл awk '/grep_string/ {print a} {a = b; b = $ 0}'

-1

Итак, вот мое решение, так как я не мог найти способ сделать это:

Когда меня возвращали с блоками контента, скажите:

foo
bar
whatever
--
foo2
bar2
whatever
--

и так далее, я использовал разделитель grep и получил следующую строчку примерно так, а затем удалил их:

grep -B2 whatever myfile.txt | grep -v whatever | grep -A 1 -E '\-\-' | grep -v  -E '\-\-'

И это только вывод:

foo
foo2

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .