1

Есть ли способ, используя grep, вывести строку, которая падает на определенное количество строк после того, как найдено совпадение? Например, я хочу вывести строку с соответствием, 8-ю строку после матча и 17-ю строку после матча. Это возможно?

Я знаю, что могу вывести следующие 17 строк, используя grep -A17 , но я хочу знать, смогу ли я получить полезную строку без всего, что находится между ними.

1 ответ1

2

Попробуй побыстрее, blah | grep stuff -A17 | awk "NR==1{print} NR==8{print} NR==17{print;exit}" Это выведет только 1-ю, 8-ю и 17-ю строки.

Если вы хотите включить повторяющиеся шаблоны, вы можете использовать оператор mod (%)

awk "(NR-1)%17 == 0{print} (NR-8)%17 == 0{print} (NR-17)%17 == 0{print}"

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