
Me gustaría encontrar archivos con la extensión wav que tengan el mismo nombre de archivo, solo que tengan una extensión diferente (que es mp3) en el mismo directorio.
Probé el siguiente comando estructurado hasta ahora:
$ diff -s $(for i in *.wav; do echo "${i%wav}"; done) $(for i in *.mp3; do echo "${i%mp3}"; done)
diff: extra operand `abc(xyz'
diff: Try `diff --help' for more information.
Respuesta1
Si desea diff
la salida de algunos comandos, usesustitución de procesos<(...)
en lugar de sustitución de comandos $(...)
. De lo contrario, parece que debería funcionar.
diff $(foo)
coloca la salida de foo
en la línea de comando de diff
, mientras que diff
quiere leer el nombre de un archivo. diff <(foo)
organiza que la salida de foo
esté disponible desde un fd y proporciona diff
un nombre de ruta que corresponde al fd ya abierto ( /dev/fd/NN
puede ser específico del sistema).
Aunque vuelvas a leer la pregunta, tal vez quieras hacer algo como esto:
for f in *.wav ; do
b=${f%.wav}
if [ -f "$b.mp3" ] ; then echo "$b.mp3 exists" ; else
echo "$b.mp3 missing" ; fi
done
Eso indicaría si todos .wav
los archivos en el directorio tienen un .mp3
archivo correspondiente. (Pero no mostraría ningún .mp3
archivo que no tenga un correspondiente .wav
, por supuesto).