Estoy usando un script llamado conv-script
que encontré en AskUbuntu.aquí. Se parece a esto
#!/bin/sh
readarray -t files < wma-files.txt
for file in "${files[@]}"; do
out=${file%.wma}.mp3
probe=`avprobe -show_streams "$file" 2>/dev/null`
rate=`echo "$probe" | grep "^bit_rate" | sed "s:.*=\(.*\)[0-9][0-9][0-9][.].*:\1:" | head -1`
ffmpeg -i "$file" -ab "$rate"k "$out" && rm "$file"
done
Lo he ejecutado sudo chmod +x ./conv-script
y luego intento ejecutarlo consudo ./conv-script
Después de hacerlo me sale un errorsudo: ./conv-script: command not found
No estoy seguro de qué estoy haciendo mal, ya que puedo ver el archivo en el directorio de trabajo actual y lo configuré para que sea ejecutable. Una cosa que pensé que podría ser es que la primera línea de mi secuencia de comandos es incorrecta, pero tengo otra secuencia de comandos con el mismo asunto y se ejecuta bien. Cuando uso el shebang en el original #!/usr/bin/env bash
obtengo lo mismo. Gracias por la ayuda
EDITAR:
salida defile conv-script
conv-script: a /usr/bin/env bash script, ASCII text executable
salida destat conv-script
File: ‘conv-script’
Size: 325 Blocks: 64 IO Block: 32768 regular file
Device: 821h/2081d Inode: 82004 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ kalenpw) Gid: ( 1000/ kalenpw)
Access: 2016-05-17 16:40:43.000000000 -0600
Modify: 2016-05-17 14:33:31.000000000 -0600
Change: 2016-05-17 14:33:32.000000000 -0600
Birth: -
Respuesta1
Como primero asegúrate de tenerlo ffmpeg
instalado libav-tools
, esto lo puedes hacer escribiendo en la terminal ( ctrl+ alt+ t):
apt-cache policy ffmpeg libav-tools
Esto debería generar un resultado como el siguiente si ambos están instalados:
ffmpeg:
Installed: 7:2.8.6-1ubuntu2
Candidate: 7:2.8.6-1ubuntu2
Version table:
*** 7:2.8.6-1ubuntu2 500
500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
100 /var/lib/dpkg/status
libav-tools:
Installed: 7:2.8.6-1ubuntu2
Candidate: 7:2.8.6-1ubuntu2
Version table:
*** 7:2.8.6-1ubuntu2 500
500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
500 http://archive.ubuntu.com/ubuntu xenial/universe i386 Packages
100 /var/lib/dpkg/status
Si ingresa en una de las líneas que comienzan con Installed:
una entrada, (none)
instale el paquete con sudo apt-get install <package-name>
.
Ahora sólo algunas correcciones al guión en sí:
#!/bin/bash
cd "$1"
find . -type f | grep wma$ > wma-files.txt
readarray -t files < wma-files.txt
for file in "${files[@]}"; do
out=${file%.wma}.mp3
probe="$(avprobe -show_streams "$file" 2>/dev/null)"
rate="$(echo "$probe" | grep "^bit_rate" | sed "s:.*=\(.*\)[0-9][0-9][0-9][.].*:\1:" | head -1)"
ffmpeg -i "$file" -ab "$rate"k "$out" && rm "$file"
done
Puedes llamar a esto entonces con ./script.sh /path-to-your-music
.