ЗДРАВСТВУЙ,
Возможно, это что-то очень простое, но я не понимаю сейчас. В Linux shell, учитывая текстовый файл, как я могу сделать что-то вроде cat filename, чтобы я видел только первую строку, третью строку, 5, 7, 9 и так далее?
если не с кошкой, с другой командой
Благодарность
{print}
это действие по умолчанию, такawk 'NR % 2 == 0' < myfile
что достаточно.2 == 0
с2 == 1
на противоположное.Или что-то вроде
Для объяснения посмотрите справочную страницу для
sed
.источник
sed
версия, которая пришла мне в голову.sed -n '1d;p;n'
для четных строкИспользуйте sed:
источник
sed
не используется по умолчанию.sed
руководстве GNU gnu.org/software/sed/manual/html_node/Addresses.html#Addresses говорится «первый шаг Это расширение GNU…». Это не упоминает--posix
. Когда я пытаюсьgsed --posix -n 1~2p
(GNU sed 4.2.1), я получаюgsed: -e expression #1, char 2: unknown command: ‘~’
.источник
2 способа сделать это с помощью awk
ИЛИ только с оболочкой
источник
Простой поиск в Google показывает эту ссылку: http://bash.cyberciti.biz/academic/write-odd-even-line-file/
Вам нужно только немного его настроить.
Мои 2 цента.
источник
Не проверял это (кажется, не работает на Mac OS X), но GNU sed поддерживает
first~step
в качестве выбора адреса, например, так:sed -n 1~2p file
будет начинаться с первой строки и печатать все остальные строки после этого.
источник
sed
в базовой установке.Невозможно проверить, нашел ссылку: cat -n $ 1 | grep "$ ODDRE" | cut -b 8-> oddfile. $$
источник
ODDRE
установлено. Но этот ответ будет работать, только если файл меньше миллиона строк.Вы можете использовать эти команды для получения требуемого результата
awk 'NR% 2 == 1'
sed -ne '1 ~ 2p'
источник
ls -l
здесь?