केवल awk
आदेश के साथ :
awk -F, '{getline f1 <"file2" ;print f1,$3,$4}' OFS=, file1
फ़ाइल 1 से एक रेखा प्राप्त करें और इसे स्थानीय चर में संग्रहीत करें f1
, फिर उस लाइन को प्रिंट करें जो f1
अंत में संग्रहीत है और फ़ाइल 1 से तीसरे ( $3
) और आगे ( $3
) फ़ील्ड प्रिंट करें जो अल्पविराम से ,
पूरी तरह से सीमांकित है , और ओएफएस (आउटपुट फ़ील्ड सेपरेटर) को बदलकर डिफ़ॉल्ट]) अल्पविराम ( ,
)।
संक्षिप्त आदेश इस तरह होगा:
paste -d, file2 <(cut -d, -f3- file1)
ऐ बी सी डी
ऐ बी सी डी
ऐ बी सी डी
ऐ बी सी डी
फ़ाइल 2 पेस्ट करें, फिर फ़ाइल 1 से तीसरे कॉलम को अगले ( -f3-
) में काटें और चिपकाएँ ।
साथ awk
और paste
(विकल्प A)
नीचे दिए गए आदेश भी C,D
file2 में प्रत्येक पंक्ति के अंत में file1 से अंतिम दो कॉलम ( ) की प्रतिलिपि बनाता है :
paste -d',' file2 <(awk -F',' '{print $(NF-1)","$NF}' file1)
ऊपर कमांड फाइल 2 कंटेंट को पेस्ट करती है, फिर एक कॉमा सीमांकक ( -d','
) प्रिंट करती है, फिर दो अंतिम फ़ील्ड को पेस्ट करती है (अंतिम फ़ील्ड NF
का इंडेक्स है और $NF
यह वह स्ट्रिंग है, जिसका इंडेक्स है NF
। तो $(NF-1)
फाइल इंडेक्स 1 से फाइल 1 में से दूसरा फ़ील्ड तब होता है)। या अल्पविराम दर्शक ( -F','
) के साथ विभाजन ।
साथ awk
और paste
(विकल्प B)
यह कमांड भी ऊपर के समान है ( $3
और $4
फ़ाइल 1 से प्रत्येक पंक्ति के तीसरे और आगे के क्षेत्र को इंगित करता है):
paste -d',' file2 <(awk -F',' '{print $3","$4}' file1)
या cut
कमांड के साथ एक और समाधान :
paste -d, <(cut -d, -f1 file1) <(cut -d, -f2 file2) <(cut -d, -f3- file1)
कटौती उपरोक्त आदेश में आदेश पहले पहले क्षेत्र (कटौती -f1
जो अल्पविराम सीमांकक (साथ अनुक्रमित -d.
file1 (से)) cut -d, -f1 file1
), तो कट जाता है और करें 2 (के दूसरे क्षेत्र पेस्ट cut -d, -f2 file2
) और अंत में कटौती और तीसरे स्तंभ (पेस्ट -f3
) nexts करने के लिए ( -
) file1 ( cut -d, -f3- file1
) से फिर।
यह आदेश भी वही परिणाम देता है:
paste -d, <(awk -F',' '{print $1}' file1) <(awk -F',' '{print $2}' file2) <(awk -F',' '{print $3","$4}' file1)
awk -F',' '{print $1}' file1
फ़ाइल 1 से दूसरे फ़ील्ड को पेस्ट करें ( ) फिर कॉमा ( -d,
) प्रिंट करें , फिर फाइल 2 ( awk -F',' '{print $2}' file2
) से दूसरा कॉलम पेस्ट करें, आखिर में फाइल 1 ( ) के दूसरे और आखिरी कॉलम को awk -F',' '{print $3","$4}' file1
फिर से पेस्ट करें।