2013-05-19 4 views
15

में मान के अनुसार बड़ी फ़ाइल विभाजित करें मैं 6 वें कॉलम (लगभग 10 * 10^3 अद्वितीय मान) में मान के अनुसार एक बड़ी फ़ाइल (10^6 पंक्तियां) को विभाजित करना चाहता हूं। हालांकि, मैं रिकॉर्ड की संख्या के कारण इसे काम नहीं कर सकता। यह आसान होना चाहिए लेकिन इसमें पहले से ही घंटों लग रहे हैं और मुझे और नहीं मिल रहा है।एकल कॉलम (एडब्ल्यूके)

मैं दो विकल्प की कोशिश की है:
विकल्प 1

awk '{print > $6".txt"}' input.file 
awk: cannot open "Parent=mRNA:Solyc06g051570.2.1.txt" for output (Too many open files) 

विकल्प 2

awk '{print > $6; close($6)}' input.file 

यह एक त्रुटि है, लेकिन यह केवल फाइलों अंतिम पंक्ति के लिए इसी शामिल बनाता का कारण नहीं है 'ग्रुपिंग' मान $ 6

यह मेरी फ़ाइल की शुरुआत है, हालांकि, यह फ़ाइल कोई त्रुटि नहीं देती है क्योंकि यह बहुत छोटा है:

exon 3688 4407 + ID=exon:Solyc06g005000.2.1.1 Parent=mRNA:Solyc06g005000.2.1 
exon 4853 5604 + ID=exon:Solyc06g005000.2.1.2 Parent=mRNA:Solyc06g005000.2.1 
exon 7663 7998 + ID=exon:Solyc06g005000.2.1.3 Parent=mRNA:Solyc06g005000.2.1 
exon 9148 9408 + ID=exon:Solyc06g005010.1.1.1 Parent=mRNA:Solyc06g005010.1.1 
exon 13310 13330 + ID=exon:Solyc06g005020.1.1.1 Parent=mRNA:Solyc06g005020.1.1 
exon 13449 13532 + ID=exon:Solyc06g005020.1.1.2 Parent=mRNA:Solyc06g005020.1.1 
exon 13711 13783 + ID=exon:Solyc06g005020.1.1.3 Parent=mRNA:Solyc06g005020.1.1 
exon 14172 14236 + ID=exon:Solyc06g005020.1.1.4 Parent=mRNA:Solyc06g005020.1.1 
exon 14717 14803 + ID=exon:Solyc06g005020.1.1.5 Parent=mRNA:Solyc06g005020.1.1 
exon 14915 15016 + ID=exon:Solyc06g005020.1.1.6 Parent=mRNA:Solyc06g005020.1.1 
exon 22106 22261 + ID=exon:Solyc06g005030.1.1.1 Parent=mRNA:Solyc06g005030.1.1 
exon 23462 23749 - ID=exon:Solyc06g005040.1.1.1 Parent=mRNA:Solyc06g005040.1.1 
exon 24702 24713 - ID=exon:Solyc06g005050.2.1.3 Parent=mRNA:Solyc06g005050.2.1 
exon 24898 25402 - ID=exon:Solyc06g005050.2.1.2 Parent=mRNA:Solyc06g005050.2.1 
exon 25728 25845 - ID=exon:Solyc06g005050.2.1.1 Parent=mRNA:Solyc06g005050.2.1 
exon 36352 36835 + ID=exon:Solyc06g005060.2.1.1 Parent=mRNA:Solyc06g005060.2.1 
exon 36916 38132 + ID=exon:Solyc06g005060.2.1.2 Parent=mRNA:Solyc06g005060.2.1 
exon 57089 57096 + ID=exon:Solyc06g005070.1.1.1 Parent=mRNA:Solyc06g005070.1.1 
exon 57329 58268 + ID=exon:Solyc06g005070.1.1.2 Parent=mRNA:Solyc06g005070.1.1 
exon 59970 60505 - ID=exon:Solyc06g005080.2.1.24 Parent=mRNA:Solyc06g005080.2.1 
exon 60667 60783 - ID=exon:Solyc06g005080.2.1.23 Parent=mRNA:Solyc06g005080.2.1 
exon 63719 63880 - ID=exon:Solyc06g005080.2.1.22 Parent=mRNA:Solyc06g005080.2.1 
exon 64143 64298 - ID=exon:Solyc06g005080.2.1.21 Parent=mRNA:Solyc06g005080.2.1 
exon 66964 67191 - ID=exon:Solyc06g005080.2.1.20 Parent=mRNA:Solyc06g005080.2.1 
exon 71371 71559 - ID=exon:Solyc06g005080.2.1.19 Parent=mRNA:Solyc06g005080.2.1 
exon 73612 73717 - ID=exon:Solyc06g005080.2.1.18 Parent=mRNA:Solyc06g005080.2.1 
exon 76764 76894 - ID=exon:Solyc06g005080.2.1.17 Parent=mRNA:Solyc06g005080.2.1 
exon 77189 77251 - ID=exon:Solyc06g005080.2.1.16 Parent=mRNA:Solyc06g005080.2.1 
exon 80044 80122 - ID=exon:Solyc06g005080.2.1.15 Parent=mRNA:Solyc06g005080.2.1 
exon 80496 80638 - ID=exon:Solyc06g005080.2.1.14 Parent=mRNA:Solyc06g005080.2.1 

उत्तर

24

विकल्प 2, ">" के बजाय ">" का उपयोग करें, संलग्न करने के लिए।

awk '{print >> $6; close($6)}' input.file 
+1

बहुत बहुत धन्यवाद! खैर, यह मुश्किल नहीं था। खुशी है कि आपने मुझे एक स्पष्ट त्रुटि के साथ मदद करने के लिए समय निकाला! चीयर्स – Elmer

+0

उत्तर और प्रश्न के लिए धन्यवाद। मेरे पास एक ही समस्या है और इसे करने के लिए एक अच्छे तरीके से संघर्ष कर रहा था ... – gvrocha

संबंधित मुद्दे