Necesito recuperar las últimas 100 líneas de registros del archivo de registro. Probé el comando sed
sed -n -e '100,$p' logfilename
Avíseme cómo puedo cambiar este comando para recuperar específicamente las últimas 100 líneas.
Necesito recuperar las últimas 100 líneas de registros del archivo de registro. Probé el comando sed
sed -n -e '100,$p' logfilename
Avíseme cómo puedo cambiar este comando para recuperar específicamente las últimas 100 líneas.
Respuestas:
Puede usar el comando de cola de la siguiente manera:
tail -100 <log file> > newLogfile
Ahora las últimas 100 líneas estarán presentes en newLogfile
EDITAR:
Las versiones más recientes de tail mencionadas por twalberg usan el comando:
tail -n 100 <log file> > newLogfile
tail
requieren la sintaxis tail -n 100 <filename>
...
Mire, el script sed que imprime las 100 últimas líneas que puede encontrar en la documentación de 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 mucho más difícil que tu guión, así que
tail -n 100 logfilename
Es mucho más simple. Y es bastante eficiente, no leerá todos los archivos si no es necesario. Vea mi respuesta con el informe de strace para tail ./huge-file
: /unix/102905/does-tail-read-the-whole-file/102910#102910
"tail" es un comando para mostrar la última parte de un archivo, el uso de los interruptores disponibles adecuados nos ayuda a obtener resultados más específicos. el modificador más utilizado para mí es -n y -f
SINOPSIS
cola [-F | -f | -r] [-q] [-b número | -c número | -n número] [archivo ...]
aquí
-n número: la ubicación son líneas numéricas.
-f: la opción -f hace que la cola no se detenga cuando se alcanza el final del archivo, sino que espera a que se agreguen datos adicionales a la entrada. La opción -f se ignora si la entrada estándar es una tubería, pero no si es una FIFO.
Recupere registros de las últimas 100 líneas
To get last static 100 lines
tail -n 100 <file path>
To get real time last 100 lines
tail -f -n 100 <file path>
Sé que esto es muy antiguo, pero para quien sea que ayude.
less +F my_log_file.log
eso es básico, con menos puedes hacer cosas mucho más poderosas. una vez que comience a ver los registros, puede buscar, ir al número de línea, buscar el patrón, mucho más, además es más rápido para archivos grandes.
es como vim para registros [totalmente mi opinión]
documentación original de menos: https://linux.die.net/man/1/less
menos hoja de trucos: https://gist.github.com/glnds/8862214
len=`cat filename | wc -l`
len=$(( $len + 1 ))
l=$(( $len - 99 ))
sed -n "${l},${len}p" filename
la primera línea toma la longitud (líneas totales) del archivo, luego +1 en las líneas totales después de eso, tenemos que capturar 100 registros, entonces, -99 de la longitud total, simplemente coloca las variables en el comando sed para obtener las últimas 100 líneas del archivo
Espero que esto ayude.