texto - Eliminar las dos primeras líneas de un archivo usando BASH o awk o sed o lo que sea
sed shell (4)
Qué tal si:
tail +3 file
O
awk ''NR>2'' file
O
sed ''1,2d'' file
Estoy intentando eliminar las dos primeras líneas de un archivo simplemente no imprimiéndolo en otro archivo. No estoy buscando algo lujoso. Aquí está mi (fallido) intento de awk:
awk ''{ (NR > 2) {print} }'' myfile
Eso arroja el siguiente error:
awk: { NR > 2 {print} }
awk: ^ syntax error
Ejemplo:
contenido de ''myfile'':
blah
blahsdfsj
1
2
3
4
Lo que quiero que sea el resultado:
1
2
3
4
Usar la cola
tail -n+3 file
de la página del manual:
-n, --lines=K
output the last K lines, instead of the last 10; or use -n +K
to output lines starting with the Kth
Ya casi estas ahi Intenta esto en su lugar:
awk ''NR > 2 { print }'' myfile
awk se basa en reglas, y la regla aparece desnuda (es decir, sin llaves) antes de que el bloque se ejecute si pasa.
Además, como Jaypal ha señalado, en awk, si todo lo que quieres hacer es imprimir la línea que coincida con las reglas, puedes omitir la acción, simplificando así el comando para:
awk ''NR > 2'' myfile
awk
se basa en el pattern{action}
enunciados. En su caso, el pattern
es NR>2
y la action
que desea realizar es print
. Esta action
es también la default action
de awk
.
Así que aunque
awk ''NR>2{print}'' filename
funcionaría bien, puedes acortarlo a
awk ''NR>2'' filename
.