我正嘗試批處理過程使用的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/ –