Saya menjalankan 2 sedperintah berikut . Yang pertama menambahkan karakter baris baru di mana saya inginkan, yang kedua juga menambahkan karakter baris baru di mana saya ingin mereka, TAPI juga menambahkan satu lagi di akhir file di mana tidak ada sebelumnya.
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
Menggunakan od -cpada ketiga file memberikan output berikut.
statement_tmp_1.xml (tidak ada \ndi akhir file)
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 (tidak ada \ndi akhir file)
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
statement_tmp_3.xml ( \ndi akhir file - dari mana asalnya?)
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
Saya menjalankan AIX 5.3
Pada dasarnya, saya ingin menghentikan penambahan \n, atau menemukan cara menghapusnya.
\ndi sisi kanan tidak portabel.
perlatau alat lain yang dapat menangani data biner.
\<LF>adalah cara tradisional dan POSIX untuk menambahkan karakter LF. \nbiasanya akan menggantikan nkarakter dalam apa pun selain GNU sed.
s|...|&\n|juga?