Как написать фильтр Unix, который выводит только строку каждые N строк - PullRequest
3 голосов
/ 10 декабря 2008

Предположим, что стандартный ввод фильтра задан следующей строкой:

line 1 
line 2
line 3
line 4 
line 5
line 6
line 7
line 8
line 9
line 10

Было бы лучше, если бы кто-нибудь сказал мне, как написать скрипт, который печатает только каждые 4 строки, в случае с приведенным выше примером ввода:

line 1
line 5
line 9

Ответы [ 4 ]

16 голосов
/ 10 декабря 2008
$ yes | cat -n | head -10 | awk 'NR % 4 == 1'
     1  y
     5  y
     9  y

То есть ваш ответ "awk 'NR % 4 == 1'".

2 голосов
/ 10 декабря 2008
awk '{ if ((NR-1) %4 ==0) print}'
1 голос
/ 10 декабря 2008
awk 'NR%4 == 1 {print}'</etc/hosts

Замените 4 на любое желаемое значение.

0 голосов
/ 11 августа 2016
sed -ne '1~4p’

(GNU sed. Не тестировался на OSX и т.

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