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' < myfile
es suficiente.2 == 0
con2 == 1
por lo contrario.O algo como
Para obtener una explicación, busque la página del manual
sed
.fuente
sed
versión portátil que se me pasó por la cabeza.sed -n '1d;p;n'
para las líneas pares, por ejemploUse sed:
fuente
sed
no es el predeterminado.sed
manual 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~step
como una selección de dirección, por ejemplo:sed -n 1~2p file
comenzaría en la primera línea e imprimiría cualquier otra línea después de eso.
fuente
sed
en la instalación base.Incapaz de probar, encontró un enlace: cat -n $ 1 | grep "$ ODDRE" | corte -b 8-> oddfile. $$
fuente
ODDRE
está 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 -l
aquí?