¿Hay alguna manera simple de hacer eco de un archivo, saltando la primera y la última línea? Estaba mirando la tubería desde head
adentro tail
, pero para aquellos parece que tendría que conocer las líneas totales desde el principio. También estaba mirando split
, pero tampoco veo una manera de hacerlo.
fuente
head -n -1
elimina la primera Y la última línea de mi.txt
archivo, en Ubuntu 14.04.2LTS.Aquí está cómo hacerlo con
awk
:También otra forma de
sed
:x
es unsed
comando avanzado , cambia la línea actual con la anterior: la corriente pasa al búfer y la anterior va a la pantalla, y así sucesivamente mientrassed
procesa el flujo línea por línea (es por eso que la primera línea estará en blanco).awk
La solución en cada paso (línea) coloca la línea actual en la variable y comienza a imprimirla solo después de pasar la segunda línea. Por lo tanto, obtuvimos una secuencia de líneas en la pantalla desde la segunda hasta la última, pero una. La última línea se omite porque la línea está en la variable y debe imprimirse solo en el siguiente paso, pero todos los pasos ya se agotaron y nunca vemos la línea en la pantalla.Misma idea en el
perl
:$.
representa el número de línea y$_
la línea actual.perl -n
es un atajo parawhile(<..>) {..}
estructura y-e
es para script en línea.fuente
En Python, me gustaría hacer esto.
Pegue el código anterior en un archivo y asígnele el nombre
script.py
. Ejecute el script contra el archivo con el que desea verificar.Ejemplo:
fuente
Para usuarios de Mac:
En Mac,
head -n -1
no funciona. En cambio, invierta el archivo, corte la primera línea y luego inviértala:Explicación:
tail -r
: invierte el orden de las líneas en su entradatail -n +2
: imprime todas las líneas a partir de la segunda línea en su entradafuente