ฉันรันsedคำสั่ง2 ต่อไปนี้ ตัวแรกเพิ่มตัวอักขระขึ้นบรรทัดใหม่ที่ฉันต้องการตัวที่สองเพิ่มตัวอักขระขึ้นบรรทัดใหม่ตามที่ฉันต้องการ แต่ 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
statement_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>เป็นวิธีดั้งเดิมและ POSIX ในการเพิ่มอักขระ LF \nโดยทั่วไปจะแทนnตัวละครในอะไร แต่ sedGNU
s|...|&\n|เช่นกัน?