Saya menggunakan Fedora, dan paket suara ini berada di lokasi yang sedikit berbeda:
$ ls /usr/share/festival/lib/voices/*/ -1 | grep -vE "/usr|^$"
kal_diphone
ked_diphone
nitech_us_awb_arctic_hts
nitech_us_bdl_arctic_hts
nitech_us_clb_arctic_hts
nitech_us_jmk_arctic_hts
nitech_us_rms_arctic_hts
nitech_us_slt_arctic_hts
Anda bisa memodifikasi seperti ini:
$ ls /usr/share/festival/voices/*/ -1 | grep -vE "/usr|^$"
Menggunakan find
Penggunaan lsdi rumah ini biasanya disukai karena hasil dari lssulit untuk diurai. Lebih baik menggunakan findperintah, seperti:
$ find /usr/share/festival/lib/voices -maxdepth 2 -mindepth 2 \
-type d -exec basename {} \;
nitech_us_awb_arctic_hts
nitech_us_bdl_arctic_hts
nitech_us_slt_arctic_hts
nitech_us_jmk_arctic_hts
nitech_us_clb_arctic_hts
nitech_us_rms_arctic_hts
ked_diphone
kal_diphone
Detail menemukan & nama kecil
Perintah ini bekerja dengan menghasilkan daftar path lengkap ke file yang tepat 2 level sehubungan dengan direktori ini:
/usr/share/festival/lib/voices
Daftar ini terlihat seperti ini:
$ find /usr/share/festival/lib/voices -maxdepth 2 -mindepth 2
/usr/share/festival/lib/voices/us/nitech_us_awb_arctic_hts
/usr/share/festival/lib/voices/us/nitech_us_bdl_arctic_hts
/usr/share/festival/lib/voices/us/nitech_us_slt_arctic_hts
/usr/share/festival/lib/voices/us/nitech_us_jmk_arctic_hts
/usr/share/festival/lib/voices/us/nitech_us_clb_arctic_hts
/usr/share/festival/lib/voices/us/nitech_us_rms_arctic_hts
/usr/share/festival/lib/voices/english/ked_diphone
/usr/share/festival/lib/voices/english/kal_diphon
Tapi kami ingin bagian terakhir dari direktori ini, simpul daun. Jadi kita dapat menggunakan basenameuntuk menguraikannya:
$ basename /usr/share/festival/lib/voices/us/nitech_us_awb_arctic_hts
nitech_us_awb_arctic_hts
Menyatukan semuanya, kita bisa membuat findperintah melewati setiap direktori 2 level ke basenameperintah. Notasi basename {}adalah apa yang melakukan konversi nama dasar ini. Temukan panggilan melalui -execsakelar itu.