Friday 15 January 2010

bash - Looping over files in a folder for shell script with multiple inputs -


कमांड लाइन टूल के लिए एकाधिक इनपुट निर्दिष्ट करना

मैं नया हूँ Bash और कई फाइलों वाले एक फ़ोल्डर पर कमांड लाइन प्रोग्राम को लूप करना चाहता हूँ।

स्क्रिप्ट को दो इनपुट फाइलें लेती हैं (मेरे मामले में, ये फ़ाइल नाम ("... < Em> R1 "बनाम" ... R2 ")। उपकरण का एक उदाहरण चलाना इस तरह दिखता है:

  tool_name infile1 infile2 -o Outfile_suffix  

वास्तविक उदाहरण:

  कैस्पर sample_name_R1_001.out.fastq sample_name_R2_001.out.fastq -o sample_name_merged  

फ़ाइल नाम प्रारूप:

डीसीपी-137- 5102 -T1A3_S33_L001_R1_001.fastq
डीसीपी-137- 5102 -T1A3_S33_L001_R2_001.fastq

बोल्ड में फ़ील्ड अलग-अलग जोड़े (जैसे, 2000, 2110, 5100 आदि ...) के बीच प्रत्येक जोड़ी के साथ अलग-अलग होंगे, या तो आर 1 या आर 2 के आधार पर। < / P>

मैं चाहता हूं कि आप ओव कैसे मिलान करने वाली फाइल के कई जोड़े युक्त एक फ़ोल्डर पर स्क्रिप्ट को लूप कैसे करें, और यह भी सुनिश्चित करें कि आउटपुट (-ओ) को 'sample_name' प्रत्यय मिलता है।

मैं मूल से परिचित हूं में फाइल ।/*।*; करें ... $ फ़ाइल ...; किया लेकिन यह स्पष्ट रूप से इस उदाहरण के लिए काम नहीं करेगा। किसी भी सुझाव की सराहना की जाएगी!

आप R1 S और R2 प्राप्त करें और उसमें मर्ज किए गए फ़ाइल नाम, कुछ ऐसा:

  फ़ाइल1 में ./*R1*; नोट = $ {file1 / R1 / R2} विलय = $ {file1 # * R1} _merged casper $ {file1} $ {file2} -o $ {मर्ज} किया  

नोट: मार्कडाउन एक टिप्पणी के रूप में # * R1} _merged दिखा रहा है - यह नहीं है


No comments:

Post a Comment