Как удалить любую строку с sed?

Как я могу удалить каждую нечетную строку, с помощью sed?

remove
keep
remove
keep
remove
...
43
задан hhh 16 March 2013 в 02:50
поделиться

2 ответа

GNU sed имеет подходящий режим адресации:

sed -n '1~2!p' file

, что означает, начиная со строки 1 и с шага 2, вывести все остальные строки.

Точно так же вы можете отбросить -n и удалить совпадающие строки:

sed '1~2d'

Это также можно сделать с помощью awk:

awk 'NR%2==0' file

(Если номер строки кратен 2, выведите строку )

68
ответ дан 26 November 2019 в 22:34
поделиться

Вот самое короткое, что я могу придумать:

sed -n 'g;n;p' file

Он должен работать с не-GNU версиями sed (а также GNU sed ).

36
ответ дан 26 November 2019 в 22:34
поделиться
Другие вопросы по тегам:

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