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:
mencoba
jika Anda ingin hanya nama yang dapat Anda gunakan
cut
di akhirtr
adalah untuk mengganti ruang multiply dan tab dengan satu ruangsumber
tr -s ' ' | cut
triknya, saya tidak pernah memikirkannya karena beberapa alasan - saya biasanya menggunakan (g) awk saat mengekstraksi kolom.ls -l
seperti yang ditunjukkan jika Anda hanya ingin nama file, tetapi Anda juga tidak perluls -1
; hanyals
akan melakukan (lihat superuser.com/q/424246/49184 ).-f9
diperlukan 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.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
sumber
ls -l
mendapatkan output 1-kolom, atau bahkanls -1
jika Anda melempar output ke pipa (lihat misalnya Apa pemisah ajaib antara nama file dalam output ls? ).NR==8
hanya akan mengembalikan true untuk baris 8, dan kemudianawk
tindakan standar adalah mencetaknya.sumber
Hanya saja, jangan gunakan
-l
Anda mendapatkan nama file,
ls
memesan file yang sama denganls -l
.sumber