需要在BASH中将多对音频文件与sox合并

时间:2013-12-09 21:06:25

标签: bash sox

我需要将400对音频文件合并为400个输出文件。这些对位于一个文件夹中,其名称如下:

  • 001-filename-beg.mp3,
  • 001-filename-end.mp3,
  • 002-filename-beg.mp3,
  • 002文件名-end.mp3,

每对中的第二个文件应附加到第一个文件中,为每对创建一个新文件。我正在尝试使用sox和mp3wrap for循环,但我的知识缺乏。 我在shell中手动执行此操作。例如:

sox 001-Red-Throated-Diver-bird.mp3 001-Red-Throated-Diver-espeak.mp3  001-Red-Throated-Diver.mp3 

它工作正常。 我想为所有对自动化它。

1 个答案:

答案 0 :(得分:0)

你可以这样做:

for beg in *beg*mp3; do
   new=${beg/beg/whole}              # replace the string "beg" with the string "whole"
   end=${beg/beg/end}                # replace the string "beg" with the string "end"
   echo sox "$beg" "$end" "$new"     # show user what sort of command we plan to run
done

将其保存在名为“go”的文件中,然后键入:

chmod +x go
./go

它会告诉你它计划做什么而不做任何事情。如果您喜欢它计划做的事情,请在倒数第二行中删除“echo”一词,然后再重复一次。也许先备份你的文件!