मुझे प्रति वाक्य एक पंक्ति लिखने की आदत है क्योंकि मैं आमतौर पर चीजों को LaTex में संकलित करता हूं, या कुछ अन्य प्रारूप में लिख रहा हूं जहां लाइन ब्रेक को अनदेखा किया जाता है। नए पैराग्राफ की शुरुआत को इंगित करने के लिए मैं एक खाली लाइन का उपयोग करता हूं।
अब, मेरे पास एक फाइल इस शैली में लिखी गई है जिसे मैं केवल सादे पाठ के रूप में भेजना चाहता हूं। मैं सभी सिंगल लाइनब्रेक को हटाना चाहता हूं लेकिन डबल लाइनब्रेक को बरकरार रखना चाहता हूं। यही मैंने किया है:
sed 's/$^/NEWLINE/' file.txt | awk '{printf "%s ",$0}' | sed 's/NEWLINE/\n\n/g' > linebreakfile.txt
यह कुछ पाठों के साथ खाली लाइनों को बदल देता है मुझे विश्वास है कि फाइल में दिखाई नहीं देता है: NEWLINEऔर फिर इसे awk के साथ सभी पंक्ति विराम से छुटकारा मिल जाता है (मुझे लगता है कि किसी वेबसाइट पर यह चाल है) और फिर यह NEWLINEएस को अपेक्षित दो लाइनब्रेक के साथ बदल देता है। ।
यह एक बहुत आसान काम करने के लिए एक लंबे घुमावदार तरीके की तरह लगता है। क्या कोई सरल तरीका है? इसके अलावा, यदि सिंगल स्पेस के साथ कई स्पेस (जो कभी-कभी किसी कारण से रेंगते हैं) को बदलने का एक तरीका है, तो यह भी अच्छा होगा।
मैं emacs का उपयोग करता हूं, इसलिए यदि कुछ emacs विशिष्ट चाल है जो अच्छी है, लेकिन मैं एक शुद्ध sed या शुद्ध awk संस्करण देखूंगा।
tr -d "\n":।