Estoy en Fedora, y estos paquetes de voz están en una ubicación ligeramente diferente:
$ 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
Simplemente puede modificar esto así:
$ ls /usr/share/festival/voices/*/ -1 | grep -vE "/usr|^$"
Usando find
El uso ls
en esta mansión generalmente está mal visto porque la salida de ls
es difícil de analizar. Es mejor usar el find
comando, así:
$ 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
Detalles de find & basename
Este comando funciona produciendo una lista de rutas completas a los archivos que tienen exactamente 2 niveles de profundidad con respecto a este directorio:
/usr/share/festival/lib/voices
Esta lista se ve así:
$ 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
Pero queremos la última parte de estos directorios, el nodo hoja. Entonces podemos usar basename
para analizarlo:
$ basename /usr/share/festival/lib/voices/us/nitech_us_awb_arctic_hts
nitech_us_awb_arctic_hts
Poniendo todo junto, podemos hacer que el find
comando pase cada directorio profundo de 2 niveles al basename
comando. La notación basename {}
es lo que está haciendo estas conversiones de nombre base. Encuentra llamadas a través de su -exec
interruptor.