Покажите только нечетные строки с кошкой

Привет,

вероятно, это что-то очень легкое, но я не понимаю теперь. В Linux оболочка, учитывая текстовый файл, как я могу сделать что-то как, имя файла кошки так я только, видит первую строку, третью строку, 5, 7, 9 и так далее?

если не с кошкой, с другой командой

Спасибо

27
задан 28.01.2010, 15:11

8 ответов

Используя awk: awk 'NR % 2 == 0' filename

Править: удаленный {print}, как показано в ответе ghostdog74 и прокомментированный Roberto Bonvallet.

40
ответ дан 07.12.2019, 09:26

Или что-то как

sed -n 'p;n' filename

Для поиска объяснения страница справочника для sed.

13
ответ дан 07.12.2019, 09:26

Используйте sed:

sed -n 1~2p filename
7
ответ дан 07.12.2019, 09:26
awk '{if(NR%2!=0)print}' myfile
2
ответ дан 07.12.2019, 09:26

2 путями можно сделать это с awk

$ awk '{getline;print}' file # the equivalent of the selected sed answer
$ awk 'NR%2==0' file

ИЛИ только с оболочкой

i=1; while read -r line; do [ $((i++ % 2)) -eq 0 ] && echo $line; done <"file"
2
ответ дан 07.12.2019, 09:26

Простой поиск в Google показывает эту ссылку: http://bash.cyberciti.biz/academic/write-odd-even-line-file/

Только необходимо настроить его немного.

Мои 2 цента.

1
ответ дан 07.12.2019, 09:26

Не протестировали это (кажется, не работает над Mac OS X), но GNU sed поддержки first~step как выбор адреса, так например:

sed -n 1~2p file

запустился бы в первой строке и распечатал бы любую строку после этого.

0
ответ дан 07.12.2019, 09:26

Не мог протестировать, нашел ссылку: кошка-n 1$ | grep "$ODDRE" | сократила-b 8-> oddfile. $$

-1
ответ дан 07.12.2019, 09:26

Теги

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