La eliminación de las dos primeras líneas de un archivo usando BASH o awk, sed o lo que sea

Estoy tratando de eliminar las dos primeras líneas de un archivo simplemente por no impresión a otro archivo. Yo no estoy buscando algo de fantasía. Aquí está mi (fallido) intento de awk:

awk '{ (NR > 2) {print} }' myfile

Que arroja el siguiente error:

awk: { NR > 2 {print} }
awk:          ^ syntax error

Ejemplo:

contenido de ‘miarchivo’:

blah
blahsdfsj
1 
2
3
4

Lo que yo quiero que el resultado sea:

1
2
3
4
InformationsquelleAutor Amit | 2012-01-13

4 Kommentare

  1. 70

    Uso de la cola:

    tail -n+3 file

    de la página man:

       -n, --lines=K
              output the last K lines, instead of the last 10; or use  -n  +K
              to output lines starting with the Kth
    • Debe ser +3 (empezar en la 3ª línea)…
    • Sería necesario tail -n+3 file, pero gracias!
  2. 29

    Cómo sobre:

    tail +3 file

    O

    awk 'NR>2' file

    O

    sed '1,2d' file
    • Otra variante de la sed: sed -n '3,$p' file
  3. 24

    Que está cerca de allí. Pruebe esto en su lugar:

    awk 'NR > 2 { print }' myfile

    awk está basado en las reglas, y la regla aparece desnudo (es decir, sin necesidad de llaves) antes de que el bloque se woud ejecutar si pasa.

    También como Jaypal ha señalado, en awk si todo lo que quiero hacer es imprimir la línea que coincide con las reglas incluso se puede omitir la acción, lo que simplifica el comando:

    awk 'NR > 2' myfile
    • Él también podría poner un if antes de paréntesis, a pesar de que su camino es el mejor, ya que no engancha cada línea, los únicos a los que ya partido.
    • Usted incluso no necesita { print }. awkish manera sería awk 'NR>2' myfile
  4. 6

    awk se basa en pattern{action} declaraciones. En su caso, la pattern es NR>2 y la action desea llevar a cabo print. Este action es también el default action de awk.

    Así que aunque

    awk 'NR>2{print}' filename

    funcionaría correctamente, usted puede reducir a

    awk 'NR>2' filename.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea