Menggunakan ls-l dengan sebuah pipa bagaimana saya bisa mendapatkannya untuk menampilkan file ke-8 dalam daftar tanpa rincian file


0

Saya mencari untuk menampilkan nama file 8 dalam direktori menggunakan ls-l dan pipa misalnya ls-l | wc -1 akan memberi saya hitungan tetapi yang ingin saya kembalikan adalah nama file ke-8 dalam daftar direktori apa pun itu. Saya telah melihat grep dan wildcard tetapi masih tidak melihat perintah mana yang akan memberi saya hasil yang saya cari.

Terima kasih


Jawaban:


4

mencoba

ls -l | head -n 9 | tail -n 1

jika Anda ingin hanya nama yang dapat Anda gunakan cutdi akhir

ls -l | head -n 9 | tail -n 1 | tr -s ' ' | cut -d' ' -f8

tr adalah untuk mengganti ruang multiply dan tab dengan satu ruang


+1 untuk tr -s ' ' | cuttriknya, saya tidak pernah memikirkannya karena beberapa alasan - saya biasanya menggunakan (g) awk saat mengekstraksi kolom.
Rich Homolka

1
Jika nama file berisi beberapa spasi secara berurutan, nama file yang dikembalikan akan salah karena spasinya diciutkan. Dan dalam hal ini, bahkan jika nama file hanya berisi satu ruang, itu tidak akan dikembalikan secara penuh karena hanya bidang 8 yang dikembalikan, yang merupakan nama file hingga ruang pertama . Juga, Anda tidak perlu ls -lseperti yang ditunjukkan jika Anda hanya ingin nama file, tetapi Anda juga tidak perlu ls -1; hanya lsakan melakukan (lihat superuser.com/q/424246/49184 ).
Daniel Andersson

1
Ini juga memberikan output yang salah pada sistem saya, karena ini tergantung pada lcoale untuk format tanggal. -f9diperlukan di sini (seperti juga disinggung dalam jawaban cokedude), tetapi seperti yang saya katakan, nama file dengan spasi akan salah. -f9-akan mengembalikan bidang 9 dan seterusnya dan lebih baik, tetapi sekali lagi, nama file dengan beberapa spasi secara berurutan akan tetap salah.
Daniel Andersson

2

Cara lain seperti ini.

ls -l | sed -n '9p'

Jika Anda hanya ingin nama file atau direktori maka gunakan ini.

ls -l | sed -n '9p' | awk '{print $9}'

jcubic apakah Anda yakin ini yang Anda inginkan?

ls -l | head -n 9 | tail -n 1 | tr -s ' ' | cut -d' ' -f8

Saya akan berpikir dia ingin nama file atau direktori seperti ini.

ls -l | head -n 9 | tail -n 1 | tr -s ' ' | cut -d' ' -f9



0

Hanya saja, jangan gunakan -l

ls | kepala -8 | ekor -1

Anda mendapatkan nama file, lsmemesan file yang sama dengan ls -l.

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.