Ich bin auf Fedora und diese Voicepacks befinden sich an einem etwas anderen Ort:
$ 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
Sie können dies einfach so ändern:
$ ls /usr/share/festival/voices/*/ -1 | grep -vE "/usr|^$"
Verwenden Sie find
Die Verwendung lsin diesem Herrenhaus ist in der Regel verpönt, weil die Ausgabe von lsschwer zu analysieren ist. Verwenden Sie den findBefehl besser wie folgt:
$ 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
Details zu Fund & Basisname
Dieser Befehl erstellt eine Liste der vollständigen Pfade zu Dateien, die in Bezug auf dieses Verzeichnis genau zwei Ebenen tief sind:
/usr/share/festival/lib/voices
Diese Liste sieht folgendermaßen aus:
$ 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
Wir wollen aber den letzten Teil dieser Verzeichnisse, den Blattknoten. So können wir es verwenden, um es basenamezu analysieren:
$ basename /usr/share/festival/lib/voices/us/nitech_us_awb_arctic_hts
nitech_us_awb_arctic_hts
Wenn Sie alles zusammenfassen, können Sie den findBefehl veranlassen, dass jedes Verzeichnis mit einer Tiefe von 2 Ebenen an den basenameBefehl übergeben wird. Die Notation basename {}ist, was diese Basisnamensumwandlungen tun. Find ruft es über den -execSchalter an.