我正在尝试将一个格式的音乐文件转换.gsm
为格式.wav
。这是我尝试的方法:
for f in *.gsm; do sox $f new/${f%.wav}; done
结果是我.gsm
在new/
目录中得到了具有相同格式的相同文件。
有人能指出这里的问题是什么吗?
答案1
${f%.wav}
.wav
从变量末尾删除。由于f
只包含.gsm
末尾带有 的文件名,${f%.wav}
因此输出的文件名不变。
您可能想"${f%.gsm}.wav"
要这样做(假设(a)sox
实际上确实转换了文件并且只有扩展名不正确或(b)sox
使用文件名来确定所需的转换,因此修复文件名将修复转换)。