Bagaimana cara menampilkan hanya baris terakhir dari daftar?


12

Misalkan saya membuat daftar dan mengurutkan file berdasarkan atribut 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

Apa yang harus saya tambahkan di belakang ls-ltr dalam rantai pipa untuk mendapatkan hanya baris terakhir dari daftar? Saya tahu ada sed dan canggung, tapi saya tidak tahu cara menggunakannya, saya hanya tahu apa yang bisa mereka lakukan.

Jawaban:


25

Karena Anda bertanya tentang sed secara khusus,

ls -ltr | sed '$!d'

terima kasih, saya sekarang sedikit bangga telah belajar sed beton.
Abdul Al Hazred

3
Juga, sed -n '$p'melakukan hal yang sama, tetapi benar tail -1-benar alat yang tepat untuk pekerjaan itu.
imiric

Terima kasih! Saya berhasil mengekstrak baris terakhir di / proc / cpuinfo dan memotong nol terdepan dengan mudah (digunakan untuk mengekstraksi nomor seri RPi3 dengan mudah):sed '$!d s/.*: 0\+//' /proc/cpuinfo
Yaron

11

Anda sedang mencari tail:

ls -ltr | tail -n 1

Ini hanya akan menampilkan baris ls -ltrkeluaran terakhir. Anda dapat mengontrol jumlah garis dengan mengubah nilainya setelah -n; jika Anda menghilangkan -n 1seluruhnya Anda akan mendapatkan sepuluh baris.


jawaban sempurna, sangat cepat dan bermanfaat
Abdul Al Hazred

tail -1... -nberlebihan.
dhchdhd

@Barry tail -1sudah tidak digunakan lagi (lihat bagian “RATIONALE” dari spesifikasi POSIX untuktail , atau bagian terakhir dari manual GNUtails ); masih berfungsi dalam kasus ini, untuk saat ini, tetapi yang terbaik adalah menghindari menggunakannya dalam contoh.
Stephen Kitt

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.