Cómo imprimir sólo la última línea de un archivo?

InformationsquelleAutor yael | 2010-06-20

5 Comentarios

  1. 74
    END{print}

    debe hacerlo. Gracias a
    Ventero
    que era demasiado perezoso para presentar esta respuesta.

    • Oh, eso es mucho más sencillo que a mi manera. Bonito
  2. 18

    Usar la herramienta correcta para el trabajo. Desde que se desea obtener la última línea de un archivo de la cola es la herramienta adecuada para el trabajo, especialmente si usted tiene un archivo de gran tamaño. La cola del archivo de procesamiento del algoritmo es más eficiente en este caso.

    tail -n 1 file

    Si usted realmente desea utilizar awk,

    awk 'END{print}' file

    EDICIÓN : tail -1 file obsoleto

  3. 13

    Es preciso utilizar awk para esto? Por qué no usar simplemente tail -n 1 myFile ?

    • porque la cola no rápido como awk
    • No, en absoluto; tail -1 será mucho más rápido que awk para un archivo de gran tamaño. He intentado en un ~3m de la línea de archivo; la cola fue instantánea, mientras que awk tomó .44s
    • El -1 formulario está en desuso. Uso tail -n 1.
    • la cola está específicamente diseñado para el procesamiento de los archivos de la «final». Por lo tanto, su más rápido que awk. Porque awk procesos de archivos desde el principio. Los algoritmos son diferentes.
    • Gracias por tu comentario, respuesta modificada.
    • es el derecho – en el sentido de que awk (3B) es más rápido que el tipo de tail (4B). Cuando se trata de velocidad – bien tail tiene una simplificación de la tarea, y no script para analizar antes de la ejecución. Sin embargo, @ghostdog74 no es derecho «trabajar desde el final». Si la entrada se canaliza, tail también tiene que trabajar desde el principio. Y por no hablar de tail -n +N.
    • Yo quería que el primer campo de la última línea del archivo (awk 'END { print $1 }'). Mientras que no es lo que el OP se le solicita, la pregunta ayudó y fue más fácil para buscar que «el primer campo de la última línea del archivo»

  4. 5

    Así usted puede lograr esto mediante sed. Sin embargo, yo personalmente recomiendo el uso de tail o awk.

    De todos modos, si usted desea hacer por sed, aquí hay dos maneras:

    Método 1:

    sed '$!d' filename

    Method2:

    sed -n '$p' filename

    Filename es el nombre del archivo que tiene los datos a ser analizados.

    • ¿cuál es el significado de -n y $p?
  5. 4

    Encontrar la última línea de un archivo:

    1. El uso de sed (stream editor): sed -n '$p' fileName

    2. El uso de la cola: tail -1 fileName

    3. usando awk: awk 'END { print }' fileName

    • Por favor, utilice el código de marcado («código»).

Dejar respuesta

Please enter your comment!
Please enter your name here