bash склеить два wav файла в один в цикле (рекурсивно)
Подскажите, вот в каком вопросе:
имеется директория с файлами вида file_name_[id]t.wav и file_name[id]r.wav, file_name[id] совпадают.
- нужно найти все файлы у которых совпадают file_name_[id]
- склеить их в один .wav файл формата file_name_[id].wav (например через sox)
- и так по всем файлам (в цикле)
не могу победить склеивание, последний вариант на данный момент (который остался для теста)
#!/usr/bin/env bash
sox=/usr/bin/sox
lame=/usr/bin/lame
recorddir="/var/spool/asterisk/monitor/2023/01/14_test/14"
wavfile_r="`find $recorddir -name \*_r.wav`"
wavfile_t="`find $recorddir -name \*_t.wav`"
for wavfile in `find $recorddir -name \*.wav`; do #&& for wavfile_t in `find $recorddir -name \*_t.wav`); do
sox_split=$sox $wavfile_r $wavfile_t
wavfilenopath="$(echo $sox_split | sed 's/.*\///')"
mp3file="$(echo $sox_split | sed s/".wav"/".mp3"/)"
mp3filenopath="$(echo $mp3file | sed 's/.*\///')"
nice $lame -b 32 -m m -q 9-resample "$sox_split" "$mp3file" && rm -frv $wavfile && rm -$sox_split || { echo "$sox_split encoding failed" ; exit 1; }
echo ""
echo "File -------------------------------------------------------"
echo "Wav File : " $sox_split
echo "Wav No Path : " $wavfilenopath
echo "MP3 File : " $mp3file
echo "MP3 No Path : " $mp3filenopath
echo "End File ---------------------------------------------------"
echo ""
done
Источник: Stack Overflow на русском