una texto sustituir script reemplazar para linea insertar especiales eliminar comando caracteres caracter borrar bash awk sed lines

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 .