我需要连接文件夹中的所有wav文件。
我尝试使用命令
sox folder_name/*.wav folder_name.wav
但得到了错误
sox FAIL sox: Input files must have the same # channels
原来该文件夹中的2864个wav文件中只有21个有2个频道而不是1个。
如何忽略带有2个通道的21个文件并将所有2843个wav连接到1个通道?
答案 0 :(得分:1)
使用soxi
获取所有通道文件,将它们放入数组中然后调用sox
:
for file in folder_name/*.wav; do
if soxi "$file" | grep -q 'Channel.*1'; then
files+=("$file")
fi
done
sox "${files[@]}" folder_name.wav