बस का उपयोग करें cat
(यदि आप बिल्लियों की तरह; ;-)) और paste
:
cat file.in | paste -d, - - > file.out
स्पष्टीकरण: paste
एक साथ कई फाइलों और पेस्टों को एक साथ पढ़ता है और इसी पंक्तियों (लाइन 1 से पहली फाइल के साथ लाइन 1 से दूसरे नंबर) आदि को पढ़ता है:
paste file1 file2 ...
एक फ़ाइल नाम के बजाय, हम -
(डैश) का उपयोग कर सकते हैं । paste
फ़ाइल 1 से पहली पंक्ति लेता है (जो स्टडिन है)। फिर, यह फ़ाइल 2 से पहली पंक्ति पढ़ना चाहता है (जो कि स्टडिन भी है)। हालांकि, चूंकि स्टडिन की पहली पंक्ति पहले से ही पढ़ी गई थी और संसाधित की गई थी, अब इनपुट स्ट्रीम पर जो इंतजार होता है, वह स्टड की दूसरी पंक्ति है, जो paste
पहले वाले को खुशी से झलकती है। -d
विकल्प सीमांकक एक टैब एक अल्पविराम के बजाय होने के लिए सेट करता है।
वैकल्पिक रूप से, करते हैं
cat file.in | sed "N;s/\n/,/" > file.out
PS हाँ, कोई भी ऊपर को सरल बना सकता है
< file.in sed "N;s/\n/,/" > file.out
या
< file.in paste -d, - - > file.out
जिसका उपयोग न करने का फायदा है cat
।
हालाँकि, मैंने इस मुहावरे का उपयोग उद्देश्य के लिए , स्पष्टता कारणों से नहीं किया है - यह कम क्रिया है और मुझे पसंद है cat
(CATS NICE)। तो कृपया संपादित न करें।
वैकल्पिक रूप से, यदि आप बिल्लियों को पेस्ट पसंद करते हैं (पेस्ट क्षैतिज रूप से फ़ाइलों को संक्षिप्त करने के लिए कमांड है, जबकि बिल्ली उन्हें लंबवत रूप से व्यवस्थित करती है), तो आप उपयोग कर सकते हैं:
paste file.in | paste -d, - -