Estaba tratando de convertir algunos archivos .ape a archivos .flac usando la avconv
línea de comandos; obviamente, avconv
no es el punto principal aquí; su sintaxis es bastante sencillo, avconv -i inputApeFile.ape outputFlacFile.flac
.
El punto es que los archivos están anidados en más subcarpetas; es decir, tengo la carpeta Artist, luego varias subcarpetas de CD, cada una de las cuales contiene diferentes archivos .ape. ¿Cómo puedo convertir todos los archivos y luego guardarlos en la misma carpeta del archivo original pero con la extensión .flac?
Si es posible, me gustaría usar solo el comando de shell en una sola línea sin usar scripts. Creo que debería ser algo así
avconv -i 'ls -R | grep ape' '???'
pero estoy atrapado con la segunda parte (¿tal vez usando sed
??!?)
fuente
Ahora que se prefiere ffmpeg sobre avconv nuevamente, y hay muchas computadoras centrales baratas ($ 60 por un XU4 de 8 núcleos), creo que lo siguiente es más efectivo;
fuente
un comando de línea que estaba buscando: el
find -type f -name "*.ape" -print0 | xargs -0 avconv -i
find
comando proporcionará solo archivos que terminen en .ape,el
find
comando proporcionará la ruta relativa alavconv
comando para que pueda convertir esos archivos y mantenerlos en la misma carpeta que el archivo de entrada (es decir, .ape).find
El comando encontrará todos los archivos en ese directorio independientemente de qué tan profundo se guarden en el subdirectoriofuente
avconv
no puede tomar archivos de entrada de STDIN así.