Jalankan Perintah ls
pada Direktori Saat Ini dan dapatkan output:
$ ls
Applications Documents Library Music Public
Desktop Downloads Movies Pictures
Saya ingin menghitungnya seperti:
1. Applications
2. Desktop
3. Documents
4. Downloads
5. Library
6. Movies
7. Music
8. Pictures
9. Public
Ini bisa dicapai dengan menggunakan less
cara perantara
ls | less -N
Bagaimana cara menghitungnya secara langsung?
command-line
Kalkulus
sumber
sumber
Jawaban:
Atau cukup lakukan:
dari
man nl
:sumber
Anda harus menyalurkan output
ls
ke perintah lain. Saran saya adalah dengan menggunakanawk
di cara ini :Harap perhatikan bahwa file tersebut
file\nnewline
berisi karakter baris baru\n
dalam namanya yang diloloskan oleh opsi-b
.opsi
--group-directories-first
akan menampilkan direktori sebelum file.Cara lain yang mungkin adalah dengan menggunakan untuk loop (tetapi dalam kasus ini untuk menempatkan direktori di pengemis daftar akan menjadi lebih sulit):
sumber
jika hanya menunjukkan angka, maka Anda memiliki beberapa opsi sebagai berikut dan juga
less -N
cara Anda :Jika Anda ingin penomoran hasil kustomisasi, maka saya akan menyarankan untuk menggunakan
find
dan melakukan apa pun yang ingin Anda cetak:POSIXly, Anda akan melakukan:
sumber
i
harus diinisialisasi sebelumnya:i=0; find ...
-exec sh -c '....'
berjalan di bawah shell sh terpisah.Anda juga dapat melakukan ini sepenuhnya dengan skrip Bash pendek:
Anda bahkan dapat menjadi mewah dan menambahkan nomor baris untuk lebih dari 9 hasil:
Pemakaian
Dengan asumsi bahwa Anda menyimpan skrip sebagai file yang dapat dieksekusi
numbered-ls.sh
di direktori kerja saat ini:Argumennya
DIRECTORY
opsional dan default ke direktori kerja saat ini.Penjelasan
Jika skrip dipanggil dengan argumen, ubah direktori kerja ke jalur di argumen pertama.
Cocokkan semua entri dari direktori kerja saat ini dan lihatlah. Untuk setiap entri menambah penghitung dan mencetak nilainya bersama dengan nama entri. Karakter baris istirahat atas nama entri diganti dengan
^N
.Pipa output melalui
cat -vt
untuk berurusan dengan anggun dengan nama file yang mengandung karakter yang tidak dapat dicetak yang terminal dapat menafsirkan sebagai karakter kontrol.sumber