grep like команда для поиска совпадающих линий плюс соседних - PullRequest
14 голосов
/ 12 сентября 2011

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

Иногда мне нужно найти что-то с помощью grep, просматривая множество файлов, чтобы найти строку, которую едва помню, помогая себе с опцией -i (игнорировать регистр), -r (рекурсивный), а также -v (исключить).

Но что мне действительно нужно, так это иметь специальный вывод grep, который выделяет совпадающую линию (и) плюс соседние линии (учитывая совпадающую линию, которую я хотел бы видеть, скажем, 2 предыдущие и 2 последующие строки).

Есть ли способ получить этот результат, используя bash?

Ответы [ 3 ]

19 голосов
/ 12 сентября 2011

Grep сам сделает это

grep -A 2 -B 2 foo myfile.txt
11 голосов
/ 12 сентября 2011

большинство greps позволяют флаг "context" сделать его немного более читабельным:

grep --context=3 foo myfile.txt
7 голосов
/ 08 ноября 2013

Вы можете опустить -C

grep -2 foo myfile.txt

равно

grep -C 2 foo myfile.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...