मेरे पास .wav
ऑडियो फाइलों से भरा एक फोल्डर है ।
कुछ स्टीरियो हैं, अधिकांश मोनो स्प्लिट हैं।
मोनो स्प्लिट जोड़े सभी के नाम हैं foo bar track.L.wav
औरfoo bar track.R.wav
मैं sox
मोनो लाइन को इस तरह से 1 स्टीरियो ट्रैक में संयोजित करने के लिए कमांड लाइन टूल का उपयोग कर सकता हूं :
sox -M track1.L.wav track1.R.wav track1.Stereo.wav
जहां पहले 2 फाइलें मोनो जोड़े हैं, और तीसरी आउटपुट स्टीरियो फाइल है।
यह बहुत अच्छा है, लेकिन मैं एक ऐसी स्क्रिप्ट रखना चाहूंगा जो स्वचालित रूप से सभी मोनो जोड़े को ढूंढ ले और उन्हें स्टीरियो फाइलों में संयोजित कर दे।
यानी, मुझे उन सभी फ़ाइलों को खोजने की आवश्यकता है जिनके पास एक्सटेंशन के अलावा .L.
और .R.
पहले के समान नाम हैं , और sox
उन पर चलाएं , L/R
प्रत्यय के बिना एक ही नाम के साथ एक नई फ़ाइल के लिए आउटपुट ।
उदाहरण के लिए, यदि मेरे फ़ोल्डर में ये फ़ाइलें हैं:
track1.L.wav
track2.L.wav
track3.L.wav
track4.L.wav
track1.R.wav
track2.R.wav
track3.R.wav
track4.R.wav
track6.wav
track7.wav
मुझे इन आदेशों को चलाने की आवश्यकता है:
sox -M track1.L.wav track1.R.wav track1.Stereo.wav
sox -M track2.L.wav track2.R.wav track2.Stereo.wav
sox -M track3.L.wav track3.R.wav track3.Stereo.wav
sox -M track4.L.wav track4.R.wav track4.Stereo.wav
यहाँ मैं यहाँ तक हूँ:
for file in ./*.L.wav;
do
file2=`echo $file | sed 's_\(.*\).L.wav_\1.R.wav_'`;
out=`echo $file | sed 's_\(.*\).L.wav_\1.STEREO.wav_'`;
echo $file - $file2 - $out;
done
वह काम करता है, लेकिन जब मैं echo
लाइन को प्रतिस्थापित करता हूं
sox -M $file $file2 $out;
यह काम नहीं करता है; फ़ाइल नाम में रिक्त स्थान इसे विफल करने का कारण बनते हैं।
sox
3 आर्ग की जरूरत है: 2 फाइलें, साथ ही आउटपुट फाइल। मुझे आउटपुट फ़ाइल नाम की आवश्यकता है L के बिना पहले 2 का नाम या R