मैं निम्नलिखित 2 sedकमांड चला रहा हूं । पहला जहाँ मैं उन्हें चाहता हूँ, वहाँ दूसरी पंक्ति के अक्षर जोड़ देता है, दूसरा जहाँ मैं चाहता हूँ, वहाँ भी नए वर्ण जोड़ते हैं, लेकिन BUT उस फ़ाइल के अंत में एक अतिरिक्त जोड़ देता है जहाँ पहले कोई नहीं था।
sed -e 's|\<LIST_G_STATEMENT>|&\
|g' ${XMLDIR}/statement_tmp_1.xml > ${XMLDIR}/statement_tmp_2.xml
sed -e 's|\</LIST_G_STATEMENT>|&\
|g' ${XMLDIR}/statement_tmp_2.xml > ${XMLDIR}/statement_tmp_3.xml
od -cसभी 3 फ़ाइलों का उपयोग करने से निम्न आउटपुट मिलता है।
statement_tmp_1.xml ( \nफ़ाइल के अंत में नहीं )
1314700 T A T E M E N T > < / L I S T _
1314720 G _ S T A T E M E N T > < / G _
1314740 S E T U P > < / L I S T _ G _ S
1314760 E T U P > < / A R X S G P O >
1314777
statement_tmp_2.xml ( \nफ़ाइल के अंत में नहीं )
1314700 S T A T E M E N T > < / L I S T
1314720 _ G _ S T A T E M E N T > < / G
1314740 _ S E T U P > < / L I S T _ G _
1314760 S E T U P > < / A R X S G P O >
1315000
कथन_tmp_3.xml ( \nफ़ाइल के अंत में - यह कहाँ से आया था?)
1314700 S T A T E M E N T > < / L I S T
1314720 _ G _ S T A T E M E N T > \n < /
1314740 G _ S E T U P > < / L I S T _ G
1314760 _ S E T U P > < / A R X S G P O
1315000 > \n
1315002
मैं AIX 5.3 चला रहा हूं
मूल रूप से, मैं या तो यह अतिरिक्त जोड़ना बंद करना चाहता हूं \n, या इसे हटाने का एक तरीका ढूंढता हूं ।
\nदाहिने हाथ की तरफ पोर्टेबल नहीं है।
perlबाइनरी डेटा से निपटने के लिए उपयोग या अन्य उपकरण।
\<LF>LF वर्ण जोड़ने का पारंपरिक और POSIX तरीका है। \nआम तौर पर nकुछ भी लेकिन GNU में एक चरित्र स्थानापन्न होगा sed।
s|...|&\n|बस के रूप में अच्छी तरह से इस्तेमाल कर सकते थे ?