Leer las últimas líneas de un archivo en Linux es una tarea común, especialmente cuando trabajas con registros de sistemas (logs) o archivos de texto extensos. Linux ofrece múltiples maneras de lograrlo, desde comandos básicos hasta combinaciones más avanzadas. A continuación, te presentamos siete comandos esenciales para obtener las últimas 10 líneas de un archivo.
1. tail
El comando más conocido y directo para esta tarea es tail
. Este comando está diseñado específicamente para mostrar las últimas líneas de un archivo.
tail -n 10 archivo.txt
Si deseas omitir el argumento -n
, tail
asume por defecto que necesitas las últimas 10 líneas:
tail archivo.txt
2. head
combinado con tac
Aunque head
generalmente se usa para mostrar las primeras líneas de un archivo, puedes invertir el orden del archivo con tac
y luego extraer las primeras 10 líneas.
tac archivo.txt | head -n 10
Esto es útil si necesitas procesar los datos de manera personalizada.
3. awk
awk
es una herramienta poderosa para manipular texto. Puedes usarlo para contar las líneas y luego extraer las últimas 10.
awk 'NR > (NR-10)' archivo.txt
Sin embargo, este comando puede ser más útil si necesitas un filtrado o procesamiento adicional.
4. sed
sed
también permite acceder a las últimas líneas de un archivo. Primero, puedes contar el número total de líneas y luego restar 10 para imprimir desde ese punto.
sed -n "$(($(wc -l < archivo.txt) - 9)),\$p" archivo.txt
Aunque más complejo, este enfoque puede integrarse fácilmente en scripts.
5. grep
grep
, en combinación con tail
, puede ser útil cuando necesitas filtrar contenido específico y luego mostrar las últimas líneas.
grep "palabra_clave" archivo.txt | tail -n 10
Esto es ideal si estás buscando eventos específicos en registros grandes.
6. less
con búsqueda inversa
less
es útil para navegar manualmente en archivos grandes. Aunque no está diseñado específicamente para mostrar las últimas líneas, puedes abrir el archivo y desplazarte al final presionando Shift+G
.
less archivo.txt
Desde ahí, puedes buscar contenido hacia atrás con /
. Puedes aprender más sobre el comando less
en Dominando el comando «less» en Linux: Leyendo ficheros enormes con elegancia.
7. perl
para personalización avanzada
Si necesitas más flexibilidad, perl
ofrece una solución avanzada. Este script imprimirá las últimas 10 líneas de un archivo:
perl -ne 'push @lines, $_; shift @lines if @lines > 10; END { print @lines }' archivo.txt
Esto es útil en entornos donde no puedes usar utilidades estándar.
¿Cuál es el mejor comando para ti?
La elección del comando depende de tus necesidades específicas. Si buscas algo rápido y directo, tail
es tu mejor opción. Si necesitas personalización, herramientas como awk
, sed
o perl
te ofrecen mayor control.
¿Conoces alguna otra forma de leer las últimas líneas de un archivo? ¡Déjanos tu comentario y comparte tus trucos!