ฉันรัน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
ตัวละครในอะไร แต่ sed
GNU
s|...|&\n|
เช่นกัน?