Necesito recuperar últimos 100 líneas de los registros del archivo de registro.
He probado el comando sed

sed -n -e '100,$p' logfilename

Por favor, hágamelo saber cómo puedo cambiar este comando específicamente para recuperar la última 100 líneas.

InformationsquelleAutor Surabhi | 2016-05-02

5 Comentarios

  1. 213

    Puede utilizar la cola comando de la siguiente manera:

    tail -100 <log file>   > newLogfile
    

    Ahora 100 últimas líneas van a estar presentes en newLogfile

    EDICIÓN:

    Versiones más recientes de la cola como se ha mencionado por twalberg uso de comandos:

    tail -n 100 <log file>   > newLogfile
    
    • Tenga en cuenta que algunas de las versiones más recientes de tail requieren la sintaxis tail -n 100 <filename>
    • Por favor, actualice la respuesta a la edición facilitada por @twalberg. Su solución no funciona en la última de la cola de comandos.
  2. 10

    Mirada, la sed script que imprima las 100 últimas líneas se puede encontrar en la documentación de la sed (https://www.gnu.org/software/sed/manual/sed.html#tail):

    $ cat sed.cmd
    1! {; H; g; }
    1,100 !s/[^\n]*\n//
    $p
    
    $ sed -nf sed.cmd logfilename
    

    Para mí es más difícil de lo que tu script para que

    tail -n 100 logfilename
    

    es mucho más sencillo. Y es muy eficiente, no va a leer todo el archivo si no es necesario. Ver mi respuesta con strace informe para tail ./huge-file: https://unix.stackexchange.com/questions/102905/does-tail-read-the-whole-file/102910#102910

  3. 7

    de»cola» es el comando para mostrar la última parte de un archivo, utilizando los modificadores disponibles nos ayuda a obtener más de salida específico. la mayoría utiliza el interruptor para mí es -n y -f

    SINOPSIS

    cola [-F | -f | -r] [-q] [-b número | -c | número-número n] [archivo …]

    Aquí

    -n número :
    La ubicación es el número de líneas.

    -f : La opción-f de las causas de la cola para que no se detenga al final del archivo es
    alcanzado, sino más bien que esperar para obtener los datos adicionales que se anexará a la
    de entrada. La opción-f se ignora si el
    la entrada estándar es una pipa, pero no se si es un FIFO.

    Recuperar últimos 100 líneas de los registros de

    To get last static 100 lines  
         tail -n 100 <file path>
    
    To get real time last 100 lines
         tail -f -n 100 <file path>
    
  4. 2

    Sé que esto es muy antiguo, pero, para quien le ayuda.

    less +F my_log_file.log

    eso es solo lo básico, con menos se puede hacer mucho más cosas de gran alcance. una vez que usted comienza a ver los registros que usted puede hacer la búsqueda, ir a la línea, búsqueda de patrones, mucho más además de que es más rápido para archivos de gran tamaño.

    su como vim para los registros[totalmente mi opinión]

    original menos la documentación : https://linux.die.net/man/1/less

    menos cheatsheet : https://gist.github.com/glnds/8862214

  5. 1
    len=`cat filename | wc -l`
    len=$(( $len + 1 ))
    l=$(( $len - 99 ))
    sed -n "${l},${len}p" filename
    

    primera línea de la toma de la longitud Total (líneas) de archivo
    los +1 en el total de líneas
    después de eso tenemos que fatch 100 registros, por lo que, -99 de longitud total
    entonces sólo hay que poner las variables en el comando sed para recuperar el último de 100 líneas de archivo

    Espero que esto te ayude.

    • Por favor, explique su respuesta, no sólo hay que pegar el código

Dejar respuesta

Please enter your comment!
Please enter your name here