HOLA,
probablemente es algo muy fácil, pero no entiendo ahora. En Linux, shell, dado un archivo de texto, ¿cómo puedo hacer algo como el nombre de archivo del gato para que solo vea la primera línea, la tercera línea, 5, 7, 9 y así sucesivamente?
si no con gato, con otro comando
Gracias

{print}es la acción predeterminada, por lo queawk 'NR % 2 == 0' < myfilees suficiente.2 == 0con2 == 1por lo contrario.O algo como
Para obtener una explicación, busque la página del manual
sed.fuente
sedversión portátil que se me pasó por la cabeza.sed -n '1d;p;n'para las líneas pares, por ejemploUse sed:
fuente
sedno es el predeterminado.sedmanual GNU gnu.org/software/sed/manual/html_node/Addresses.html#Addresses dice "primer ~ paso Esta extensión GNU ...". No lo menciona--posix. Cuando lo intentogsed --posix -n 1~2p(GNU sed 4.2.1), me salegsed: -e expression #1, char 2: unknown command: ‘~’.fuente
2 formas de hacerlo con awk
O solo con el caparazón
fuente
Una simple búsqueda en Google muestra este enlace: http://bash.cyberciti.biz/academic/write-odd-even-line-file/
Solo necesitas modificarlo un poco.
Mis 2 centavos
fuente
No he probado esto (no parece funcionar en Mac OS X), pero GNU sed admite
first~stepcomo una selección de dirección, por ejemplo:sed -n 1~2p filecomenzaría en la primera línea e imprimiría cualquier otra línea después de eso.
fuente
seden la instalación base.Incapaz de probar, encontró un enlace: cat -n $ 1 | grep "$ ODDRE" | corte -b 8-> oddfile. $$
fuente
ODDREestá configurado. Pero esa respuesta solo funcionará si el archivo tiene menos de un millón de líneas.Puede usar estos comandos para requerir resultado
awk 'NR% 2 == 1'
sed -ne '1 ~ 2p'
fuente
ls -laquí?