यहां सबसे आसान उपकरण हो सकता है sed
। सम्मिलित करने के लिए b.txt
में a.txt
5 वीं पंक्ति के बाद, आप लिख सकते हैं:
sed '5r b.txt' a.txt
sed
फ़ाइल को a.txt
लाइन के रूप में तर्क ( ) लाइन के रूप में निर्दिष्ट करता है । सभी लाइनें आउटपुट में पुन: उत्पन्न हो जाती हैं, जैसे कि वे इनपुट में दिखाई देते हैं, जब तक कि वे एक कमांड द्वारा बदल नहीं जाते हैं।
5
एक पते (लाइन नंबर), जिस पर निम्न आदेश क्रियान्वित किया जाएगा है। हम जिस कमांड का उपयोग करते हैं r
, वह एक फ़ाइल का नाम तर्क के रूप में लेता है (यहां b.txt
), इसे पूरी तरह से पढ़ता है और वर्तमान लाइन के बाद आउटपुट में सम्मिलित करता है।
जैसा कि यह ऊपर खड़ा है, यह sed
कमांड लाइन केवल आउटपुट को प्रिंट करेगा, बिना किसी फाइल को लिखे। आप या तो एक नई फ़ाइल (इनपुट फ़ाइल में से कोई भी नहीं!) को Bash के आउटपुट पुनर्निर्देशन का उपयोग करके पुनर्निर्देशित कर सकते हैं:
sed '5r b.txt' a.txt > c.txt
या आप बाहरी इनपुट फ़ाइल को सीधे 'एस (फॉर-इन-प्लेस') स्विच a.txt
का उपयोग करके संशोधित कर सकते हैं । यदि आप इसे लिखते हैं , तो यह पहले प्रत्यय के साथ मूल इनपुट फ़ाइल की एक बैकअप प्रतिलिपि बना देगा :sed
-i
-i.bak
.bak
sed -i '5r b.txt' a.txt
एक उदाहरण:
$ cat a.txt
January
February
March
April
May
October
November
December
$ cat b.txt
June
July
August
September
$ sed '5r b.txt' a.txt
January
February
March
April
May
June
July
August
September
October
November
December