का उपयोग कर आने वाली स्ट्रीम से नए लाइन वर्ण को हटा रहा है मैं शैल स्क्रिप्टिंग के लिए नया हूं और मैं SED का उपयोग करके प्रत्येक पंक्ति से नए लाइन वर्ण को हटाने का प्रयास कर रहा हूं। मैंने अभी तक यह किया है:sed
printf "{new\nto\nlinux}" | sed ':a;N;s/\n/ /g'
केवल नए लाइन वर्ण को हटा देता है। मैंने कहीं यह आदेश मिला:
printf "{new\nto\nlinux}" | sed ':a;N;$!ba;s/\n/ /g'
लेकिन यह देता है: "बा:। इवेंट नहीं मिला"
अगर मैं कार्य करें:
printf "{new\nto\nlinux}" | sed ':a;N;s/\n/ /g' | sed ':a;N;s/\n/ /g'
तो यह सही उत्पादन देता है, लेकिन मैं कुछ बेहतर रहा हूँ के रूप में मुझे यकीन नहीं जब मैं स्क्रिप्ट चलाने मैं कितने नए चरित्र मिल जाएगा हूँ। आने वाली स्ट्रीम इको या printf या स्क्रिप्ट में कुछ चर से है। अग्रिम
'बा: इवेंट नहीं मिला' त्रुटि अपने खोल से है। सीएसएच का उपयोग बंद करो, या बचें! –
@WilliamPursell मुझे सीएसएस का उपयोग केवल मेरे लिए कोई अन्य विकल्प नहीं है। आपके सुझाव पर मैंने गिरा दिया! "printf" {new \ nto \ nlinux} "| sed ': a; n; $ ba; s/\ n// g'" यह आदेश भी सही परिणाम नहीं दे रहा है .. मुझे पता है कि उपयोग करने के कई नुकसान हैं csh लेकिन कुछ बाध्यता के कारण इसका उपयोग करना होगा :(..thanks –
आप '!' को नहीं हटा सकते हैं, लेकिन आपको इसे बैकस्लैश से पहले करना होगा। –