Acción personalizada llamando a avconv en Thunar y Dolphin

Me gusta usar un command como

avconv -i %f -map 0:1 -c:a copy %f.m4a

en las acciones personalizadas de Thunar o Dolphin para extraer audio de mp4 y flv sin transencoding.

Pero eso generará un nombre que contiene la extensión del file de input:

De un video "nombre.mp4" obtengo un file de audio llamado "nombre.mp4.m4a".

¿Cómo ajustar el command para que la salida sea "name.m4a"?

Puede usar las funciones de manipulación de cadenas de bash, ejecutando su command a través de bash:

 bash -c 'avconv -i "$0" -map 0:1 -c:a copy "${0%%.*}".m4a' %f 

(Supongo que su administrador de files pasará un nombre de file como foo bar.mp4 como un único argumento).

Tenga en count que bash tiene ${var%%suffix} y ${var%suffix} – el primero es codicioso ( foo.bar.mp4 se convertirá en foo con el primero y foo.bar con el segundo). En este caso, mi objective es usar este último, y suponiendo que %% será reemplazado por % por el administrador de files ya que % es aparentemente un carácter especial aquí.