बस उन पंक्तियों को होल्ड बफर पर कॉपी करें (फिर उन्हें डिलीट करें) और जब आखिरी लाइन पर होल्ड बफर की सामग्री को पैटर्न स्पेस में जोड़ें:
some command | sed '1,NUMBER{ # in this range
H # append line to hold space and
1h # overwrite if it's the 1st line
d # then delete the line
}
$G' # on last line append hold buffer content
के साथ gnu sed
आप इसे लिख सकते हैं
some command | sed '1,NUMBER{H;1h;d;};$G'
यहाँ ol के साथ एक और तरीका है ed
(यह पाठ बफ़र r
के आउटपुट some command
को मिटा देता है और फिर la t one के बाद m
अंडाकार लाइनों 1,NUMBER
को $
):
ed -s <<IN
r ! some command
1,NUMBERm$
,p
q
IN
ध्यान दें - जैसा कि बताया गया है - ये दोनों विफल हो जाएंगे यदि आउटपुट में NUMBER
+1 लाइनें कम हैं। एक अधिक ठोस दृष्टिकोण होगा ( gnu sed
वाक्य रचना):
some command | sed '1,NUMBER{H;1h;$!d;${g;q;};};$G'
यह केवल तब तक उस सीमा में लाइनों को हटाता है जब तक वे अंतिम पंक्ति ( $!d
) नहीं होते हैं - अन्यथा यह बफर सामग्री ( g
) और फिर q
यूआईटी (वर्तमान पैटर्न स्थान को प्रिंट करने के बाद ) के साथ पैटर्न स्पेस को ओवरराइट करता है ।