我正尝试批处理过程使用的bash shell中的Mac终端文件的大量。该脚本将搭配在一起2个版本相同的音频文件的,已处理方式不同,使用SOX声音交流库和-m
(用于混合)命令。我已经能够为一个简单的搭配组合的2个独立的文件,像这样:如何操作具有已知后缀的类似文件对?
sox −m file1.wav file2.wav mixed.wav
上述工程就像一个魅力,只是输出正确的结果。
然而,一边写批处理脚本,去合并文件夹中的所有文件,我遇到了麻烦。首先,我的文件被命名如下:
AF01-sweep1.wav
AF01-sweep2.wav
AF02-sweep1.wav
AF02-sweep2.wav
AF03-sweep1.wav
AF03-sweep2.wav
...等等...
下面是脚本:
for file in ./*sweep1*
do
for file2 in ./*sweep2*
do
out=COMBINED
sox -V4 -m -v 1 $file -v 1 $file2 $file-$out.wav
done
done
因为这个脚本的结果会发生什么事是,它的每一个文件结合与令牌“stairs在台阶上铺”与每一个文件含有“两点清扫”。我只是需要结合起来,前AF01-sweep1.wav与AF01-sweep2.wav等等。我不知道是什么命令或登录放到这里告诉bash寻找同名但以“stairs在台阶上铺”和“两点清扫”的区别。我有成千上万的文件,所以使得它处理夫妻脚本是至关重要的。
从来就看周围bash的解决方案,并发现一种叫-NAME
,并认为这是能够与像MATCH
或FIND
命令一起使用。不确定,因为我没有正常编程。
一些在[循环切换对文件(https://stackoverflow.com/questions/28725333/looping-over-pairs-of-values-in-bash)的答案是非常相关的,虽然这个问题本身并不是100%的关键点。在问一个新问题之前,您是否尝试搜索重复项? –
顺便说一下,'$ file1'与'“$ file1”'不一样。它有时可能看起来像是有效的,但是当你获得更多有趣的文件名(即带有空格或球体的名称)时,它可能会失败。在所有扩展周围使用引号;考虑通过http://shellcheck.net/ –