grep инвертировать поиск с контекстом

Я хочу отфильтровать несколько строк до и после совпадающая строка в файле.

Это удалит строку, которая мне не нужна:

$ grep -v "line that i don't want"

И это напечатает 2 строки до и после строки, которую я не хочу:

$ grep -C 2 "line that i don't want"

Но когда я объединю их он не отфильтровывает 2 строки до и после строки, которую я не хочу:

# does not remove 2 lines before and after the line I don't want:
$ grep -v -C 2 "line that i don't want"   

Как мне отфильтровать не только строку, которая мне не нужна, но также строки до и после нее? Я' m предположение sed было бы лучше для этого ...

Edit: Я знаю, что это можно сделать в нескольких строках awk / Perl / Python / Ruby / и т. д., но я хочу знать, есть ли там - краткое однострочное сообщение, которое я мог запустить из командной строки.

20
задан aaronstacy 6 October 2010 в 15:46
поделиться