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

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

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

remove
keep
remove
keep
remove
...
4b9b3361

Ответ 1

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

sed -n '1~2!p' file

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

Эквивалентно, вы можете удалить -n и удалить соответствующие строки:

sed '1~2d'

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

awk 'NR%2==0' file

(Всякий раз, когда номер строки кратен 2, распечатайте строку)

Ответ 2

Вот кратчайшее, о котором я могу думать:

sed -n 'g;n;p' file

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

Ответ 3

Еще один awk:

awk getline file

Ответ 4

Решение Perl:

perl -ne 'print if $. % 2 == 0' file

$. - номер строки