Um script para converter arquivos flac para wav não está funcionando

0

Eu tenho o seguinte script

 #!/bin/bash

for dir in /home/marius/data/LibriSpeech/train-clean-100/*/*
do
    for file in "$dir"/*
    do
        if [[ -f $file ]]
            then
            $name=$(echo $filename | cut -f 1 -d '.')
            ffmpeg -i $file $name.wav
            rm $file 
        fi
done
done
Basicamente, eu quero descer dois subdiretórios na pasta train-clean-100 e alterar todos os arquivos .flac para .wav, depois apagar os arquivos .flac.

De alguma forma isso não está funcionando.

    
por Qubix 31.01.2017 / 12:18

1 resposta

0

Como disse o ridgy, sugiro usar o find para obter os arquivos que você deseja converter:

#!/bin/bash

folder=/home/marius/data/LibriSpeech/train-clean-100

for file in $(find "$folder" -type f -iname "*.flac")
do
    name=$(basename "$file" .flac)
    dir=$(dirname "$file")
    echo ffmpeg -i "$file" "$dir"/"$name".wav
    #ffmpeg -i $file $dir/$name.wav
    #rm $file
done

Use também aspas ao expandir as variáveis para possíveis problemas com espaços em branco e, para esse tipo de scripts, verifique com echo se ele faz o que você deseja antes de executar.

    
por 31.01.2017 / 13:02