OI,
provavelmente isso é algo muito fácil, mas eu não entendo o ponto agora. No Linux, shell, dado um arquivo de texto, como posso fazer algo como, nome do arquivo cat, para ver apenas a primeira linha, a terceira linha, 5, 7, 9 e assim por diante?
se não estiver com gato, com outro comando
obrigado
{print}
é a ação padrão, por issoawk 'NR % 2 == 0' < myfile
é suficiente.2 == 0
com2 == 1
para a frente.Ou algo como
Para obter uma explicação, consulte a página de manual
sed
.fonte
sed
versão portátil que me passou pela cabeça.sed -n '1d;p;n'
para as linhas até mesmo, por exemploUse sed:
fonte
sed
não é o padrão.sed
manual GNU gnu.org/software/sed/manual/html_node/Addresses.html#Addresses diz “primeiro ~ passo Esta extensão GNU…”. Não menciona--posix
. Quando tentogsed --posix -n 1~2p
(GNU sed 4.2.1), recebogsed: -e expression #1, char 2: unknown command: ‘~’
.fonte
2 maneiras de fazer isso com o awk
OU com apenas a casca
fonte
Uma simples pesquisa no Google mostra este link: http://bash.cyberciti.biz/academic/write-odd-even-line-file/
Você só precisa ajustá-lo um pouco.
Meus 2 centavos.
fonte
Ainda não testei isso (parece não funcionar no Mac OS X), mas o GNU sed suporta
first~step
como uma seleção de endereço, por exemplo:sed -n 1~2p file
começaria na primeira linha e imprimiria todas as outras linhas depois disso.
fonte
sed
na instalação base.Não foi possível testar, localizou um link: cat -n $ 1 | grep "$ ODDRE" | cut -b 8-> oddfile. $$
fonte
ODDRE
está definido. Mas essa resposta só funcionará se o arquivo tiver menos de um milhão de linhas.Você pode usar esses comandos para exigir resultados
awk 'NR% 2 == 1'
sed -ne '1 ~ 2p'
fonte
ls -l
aqui?