Fedora'dayım ve bu sesli mesajlar biraz farklı bir konumda:
$ 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
Bunu şu şekilde değiştirebilirsiniz:
$ ls /usr/share/festival/voices/*/ -1 | grep -vE "/usr|^$"
Find'ı kullanma
Kullanımı ls
bu malikânede tipik çıkış nedeniyle hoş karşılanmaz ls
ayrıştırmak zordur. find
Komutu kullanmak daha iyi , şöyle:
$ 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
Find & basename detayları
Bu komut, bu dizine göre tam 2 kat derinlikte olan dosyaların tam yollarının bir listesini oluşturarak çalışır:
/usr/share/festival/lib/voices
Bu liste şöyle görünür:
$ 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
Ancak bu dizinlerin son bölümünü yaprak düğümü istiyoruz. Böylece onu basename
ayrıştırmak için faydalanabiliriz :
$ basename /usr/share/festival/lib/voices/us/nitech_us_awb_arctic_hts
nitech_us_awb_arctic_hts
Hepsini bir araya getirerek, find
her iki seviye derin dizinini komutun komuta geçirmesini sağlayabiliriz basename
. Gösterim basename {}
, bu temel ad dönüşümlerini yapan şeydir. -exec
Anahtarını kullanarak aramalar bulun .