Mac端末のbashシェルを使用して多数のファイルをバッチ処理しようとしています。スクリプトは一緒にミックスにSoXはサウンド所ライブラリと-m
(ミックス用)コマンドを使用して、異なったを処理された同じオーディオファイル、の2つのバージョンが起こっています。私はこのように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
このスクリプトの結果として何が起こる は、それが「SWEEP2」を含むすべてのファイルとトークン「SWEEP1」ですべてのファイルを兼ね備えていることです。 af01-sweep1.wavとaf01-sweep2.wavなどと組み合わせるだけでいいです。私は、同じ名前を探すようにbashに伝えたいが、 "sweep1"と "sweep2"の違いで、どのようなコマンドや記号をここに置くべきかわからない。何千ものファイルがあるので、カップルを処理するスクリプトを作成すると、が重要です。
私はbashソリューションを読んで、-NAME
と呼ばれるものを見つけました。これをMATCH
またはFIND
のようなコマンドとともに使用できると考えています。私は正常にプログラミングをしないので、わかりません。
で回答のいくつかの[ファイルのペアを介してループ](https://stackoverflow.com/questions/28725333/looping-over-pairs-of-values-in-bash)は、しかし、非常に関連しています質問自体は100%オンポイントではありません。あなたは新しい質問をする前に重複を検索しようとしましたか? –
ところで、 '$ file1'は' '$ file1 ''と同じではありません。それはときどき動作するように見えるかもしれませんが、より興味深いファイル名(スペースやグロブを持つ名前)を取得すると、失敗する可能性があります。すべての展開について引用符を使用します。 http://shellcheck.net/ –