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 ls
in diesem Herrenhaus ist in der Regel verpönt, weil die Ausgabe von ls
schwer zu analysieren ist. Verwenden Sie den find
Befehl 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 basename
zu 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 find
Befehl veranlassen, dass jedes Verzeichnis mit einer Tiefe von 2 Ebenen an den basename
Befehl übergeben wird. Die Notation basename {}
ist, was diese Basisnamensumwandlungen tun. Find ruft es über den -exec
Schalter an.