Programación y sistemas

7 comandos para leer las últimas 10 líneas de un archivo en Linux

Leer las últimas líneas de un archivo en Linux es una tarea muy común, sobre todo cuando trabajas con registros del sistema (logs) o archivos de texto extensos. Linux ofrece varias formas de lograrlo, desde comandos básicos hasta combinaciones más avanzadas. A continuación tienes siete comandos para obtener las últimas 10 líneas de un archivo, y al final una tabla resumen para elegir el que más te conviene.


1. tail

El comando más conocido y directo para esta tarea es tail, diseñado específicamente para mostrar las últimas líneas de un archivo.

tail -n 10 archivo.txt

Si omites el argumento -n, tail asume por defecto las últimas 10 líneas:

tail archivo.txt

2. head combinado con tac

Aunque head muestra las primeras líneas, puedes invertir el archivo con tac y extraer las primeras 10 (que son las últimas del original):

tac archivo.txt | head -n 10

Ojo: esto te devuelve las 10 últimas líneas pero en orden inverso. Útil si justamente quieres ver primero la línea más reciente.


3. awk

awk es una herramienta potente para manipular texto. Para imprimir las últimas 10 líneas, guarda cada línea y al llegar al final del archivo imprime las 10 últimas:

awk '{ lineas[NR] = $0 } END { for (i = NR-9; i <= NR; i++) if (i > 0) print lineas[i] }' archivo.txt

Es más verboso que tail, pero interesante cuando ya vas a hacer un filtrado o procesamiento adicional con awk.


4. sed

sed también puede imprimir las últimas líneas: cuenta el total y muestra desde «total menos 9» hasta el final:

sed -n "$(($(wc -l < archivo.txt) - 9)),\$p" archivo.txt

Más complejo, pero se integra bien dentro de scripts.


5. grep

grep, combinado con tail, sirve cuando necesitas filtrar contenido concreto y quedarte con las últimas coincidencias:

grep "palabra_clave" archivo.txt | tail -n 10

Ideal para localizar eventos concretos en registros grandes.


6. less con salto al final

less sirve para navegar manualmente por archivos grandes. Abre el archivo y salta al final pulsando Shift + G:

less archivo.txt

Puedes profundizar en el comando less en Dominando el comando «less» en Linux.


7. perl para personalización avanzada

Si necesitas más flexibilidad, perl ofrece una solución avanzada que imprime las últimas 10 líneas:

perl -ne 'push @lines, $_; shift @lines if @lines > 10; END { print @lines }' archivo.txt

Útil en entornos donde no dispones de las utilidades estándar.


Bonus: ver las últimas líneas en tiempo real (tail -f)

Cuando vigilas un log que crece constantemente, no quieres las últimas 10 líneas una vez, sino verlas en directo a medida que se escriben. Para eso está tail -f (follow):

# Seguir un log en tiempo real
tail -f /var/log/syslog

# Empezar mostrando las ultimas 20 lineas y seguir
tail -n 20 -f /var/log/nginx/access.log

Pulsa Ctrl + C para dejar de seguir el archivo.


Tabla resumen: ¿qué comando usar?

ComandoCuándo usarlo
tail -n 10La opción rápida y estándar. La mejor en el 90 % de los casos.
tail -fSeguir un log en tiempo real mientras crece.
tac | headVer las últimas líneas en orden inverso.
grep ... | tailFiltrar por texto y quedarte con las últimas coincidencias.
awk / sed / perlDentro de scripts o cuando ya procesas el texto con esas herramientas.

Para el día a día, tail es tu mejor aliado; el resto de comandos te dan control extra cuando lo necesitas. ¿Conoces algún otro truco para leer el final de un archivo? Déjalo en los comentarios.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.