आंद्रे मिलर ने जो एक-लाइनर ऊपर पोस्ट किया है वह हाल के संस्करणों को छोड़कर काम करता है जब इनपुट फ़ाइल एक रिक्त रेखा और कोई वर्ण के साथ समाप्त होती है। मेरे मैक पर मेरा सीपीयू सिर्फ घूमता है।
अनंत लूप यदि अंतिम पंक्ति रिक्त है और कोई वर्ण नहीं है :
sed '$!N; /^\(.*\)\n\1$/!P; D'
लटका नहीं है, लेकिन आप अंतिम पंक्ति खो देते हैं
sed '$d;N; /^\(.*\)\n\1$/!P; D'
स्पष्टीकरण सेड के बहुत अंत में है :
GNU सेड मेंटेनर को लगा कि पोर्टेबिलिटी की समस्या होने के बावजूद
, N कमांड को प्रिंट करने (
डिलीट करने के बजाय ) में बदलने से पैटर्न स्पेस किसी के अंतर्विरोधों के साथ अधिक सुसंगत था
कि कैसे एक कमांड को "नेक्स्ट लाइन को जोड़ें" का व्यवहार करना चाहिए ।
परिवर्तन के पक्ष में एक और तथ्य यह था कि "{N; कमांड;}"
अंतिम पंक्ति हटा यदि फ़ाइल में विषम संख्या में लाइनें हों, लेकिन
फ़ाइल की समान संख्या होने पर अंतिम पंक्ति प्रिंट करें।
एन के पूर्व व्यवहार का उपयोग करने वाली लिपियों को परिवर्तित करने के लिए (
ईओएफ तक पहुंचने पर पैटर्न स्पेस को हटाते हुए) स्क्रिप्ट
को सीड के सभी संस्करणों के साथ संगत करने के लिए , एक अकेला "एन" बदलें। "$ d; एन;" ।
uniq
अकेले ही पर्याप्त है।