¿Cómo mostrar solo la última línea de un listado?


12

Supongamos que hago una lista y clasifico los archivos por su atributo temporal:

ls -ltr

-rwxrwxrwx 1 bla bla 4096 Feb 01 20:10 foo1
-rwxrwxrwx 1 bla bla 4096 Feb 01 20:12 foo2
.
.
.
-rwxrwxrwx 1 bla bla 4096 Mar 05 13:25 foo1000

¿Qué debo agregar detrás de ls -ltr en una cadena de tuberías para obtener solo la última línea de la lista? Sé que hay sed y awk, pero no sé cómo usarlos, solo sé lo que pueden hacer.

Respuestas:


25

Como preguntaste sobre sed específicamente,

ls -ltr | sed '$!d'

gracias, ahora estoy un poco orgulloso de haber aprendido algo de concreto.
Abdul Al Hazred

3
Además, sed -n '$p'hace lo mismo, pero realmente tail -1es la herramienta adecuada para el trabajo.
imiric

¡Gracias! Logré extraer la última línea en / proc / cpuinfo y recortar el cero inicial con facilidad (utilizado para extraer el número de serie RPi3 con facilidad):sed '$!d s/.*: 0\+//' /proc/cpuinfo
Yaron

11

Estas buscando tail:

ls -ltr | tail -n 1

Esto mostrará solo la última línea de ls -ltrsalida. Puede controlar el número de líneas cambiando el valor después -n; Si omite por -n 1completo, obtendrá diez líneas.


respuesta perfecta, muy rápida y útil
Abdul Al Hazred

tail -1... -nes redundante.
dhchdhd

@Barry tail -1está en desuso (consulte la sección "JUSTIFICACIÓN" de la especificación POSIXtail o la última parte del manual de GNUtails ); todavía funciona en este caso, por ahora, pero es mejor evitar usarlo en ejemplos.
Stephen Kitt

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.