Подтвердить что ты не робот

Grep как команда для поиска совпадающих линий и линий окрестности

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

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

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

Есть ли способ получить этот результат с помощью bash?

4b9b3361

Ответ 1

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

grep --context=3 foo myfile.txt

Ответ 2

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

grep -A 2 -B 2 foo myfile.txt

Ответ 3

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

grep -2 foo myfile.txt

равно

grep -C 2 foo myfile.txt