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.txtEsto 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!







