मेरे पास कुछ टेक्स्ट-फाइल्स हैं, जिनका उपयोग मैं नोट्स लेने के लिए करता हूं - सिर्फ सादा टेक्स्ट, आमतौर पर सिर्फ उपयोग करने के लिए cat >> file
। कभी-कभी मैं एक नया विषय / लाइन ऑफ़ थिंक निर्दिष्ट करने के लिए एक रिक्त लाइन या दो (सिर्फ रिटर्न - नई लाइन वर्ण) का उपयोग करता हूं। प्रत्येक सत्र के अंत में, फ़ाइल को Ctrl+ के साथ बंद करने से पहले D, मैं आमतौर पर सत्रों को अलग करने के लिए बहुत सारी (5-10) रिक्त लाइनें (रिटर्न-कुंजी) जोड़ देता हूं।
यह स्पष्ट रूप से बहुत चालाक नहीं है, लेकिन यह इस उद्देश्य के लिए मेरे लिए काम करता है। मैं करना खत्म हुआ लेकिन बहुत सारे और अनावश्यक रिक्त लाइनों के बहुत सारे के साथ, तो मैं दूर करने के लिए एक तरह से तलाश कर रहा हूँ (के सबसे) अतिरिक्त लाइनें। क्या लिनक्स-कमांड (कट, पेस्ट, grep, ...?) है जिसे कुछ विकल्पों के साथ सीधे इस्तेमाल किया जा सकता है? वैकल्पिक रूप से, क्या किसी को एक sed, awk या perl (किसी भी स्क्रिप्टिंग-भाषा में अच्छी तरह से वास्तव में एक विचार है, हालांकि मैं sed या awk) स्क्रिप्ट पसंद करूँगा जो कि मुझे चाहिए? C ++ में कुछ लिखना (जो मैं वास्तव में खुद कर सकता था), बस ओवरकिल जैसा लगता है।
केस # 1: मुझे जो चाहिए वह एक स्क्रिप्ट / कमांड है जो दो (3 या अधिक) लगातार खाली लाइनों को हटा देगा, और उन्हें केवल दो खाली लाइनों के साथ बदल देगा। हालाँकि यह अच्छा होगा यदि इसे एक लाइन (2 या अधिक) को हटाने और / या केवल एक खाली लाइन के साथ कई रिक्त लाइनों को बदलने के लिए ट्वीक किया जा सकता है।
केस # 2: मैं एक स्क्रिप्ट / कमांड का उपयोग भी कर सकता था, जो टेक्स्ट की दो लाइनों के बीच एक सिंगल ब्लैंक लाइन को हटा देगा , लेकिन कई ब्लैंक लाइनों को छोड़ देगा (हालांकि खाली लाइनों में से किसी एक को हटाना भी स्वीकार्य होगा)।
vim
, और एक खाली लाइन के साथ रिक्त लाइनों को बदलने के लिए था)।