Grep для слова в файле и показать ниже и выше строк тоже? [дубликат]

Возможный дубликат:
Как вывести 2 или 3 строки, одна из которых содержит нужный текст, а остальные чуть ниже?

Скажем, у меня есть файл. Я хочу найти определенное слово в этом файле и показать строку.

Есть ли способ сделать вышеописанное, но также включить выше и ниже 10 строк из строки результата?

Как я могу сделать это с помощью командной строки Linux?

4
задан 13 April 2017 в 15:23

1 ответ

Предположим, что Ваш файл называют filename, Ваше регулярное выражение foo, и Вы хотите распечатать согласующие отрезки длинной линии и строки в 10 строках (выше и ниже) согласующие отрезки длинной линии:

grep -C10 foo filename

В более общем плане, для n строки прежде и после соответствий:

grep -Cn foo filename

Это решение будет работать с GNU grep (который Ubuntu и примерно любая основанная на Linux операционная система имеет). -C флаг не обязательно поддерживается всего grep реализации, все же.

Для печати строк только прежде или только после соответствий используйте -Bn или -An переключатели соответственно, где n количество строк, которые Вы хотите прежде или после. Для получения дополнительной информации об альтернативном способе сделать это, посмотрите этот связанный вопрос (благодарность fossfreedom для того, чтобы замечать подобие).

4
ответ дан 13 April 2017 в 15:23

Другие вопросы по тегам:

Похожие вопросы: