Tôi đang chạy 2 sed
lệnh sau. Cái đầu tiên thêm các ký tự dòng mới nơi tôi muốn chúng, cái thứ hai cũng thêm các ký tự dòng mới nơi tôi muốn chúng, nhưng NHƯNG cũng thêm một ký tự ở cuối tệp không có ký tự trước.
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
Sử dụng od -c
trên cả 3 tệp cho kết quả đầu ra sau.
statement_tmp_1.xml (không có \n
ở cuối tệp)
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 (không có \n
ở cuối tệp)
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
ở cuối tệp - nó đến từ đâu?)
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
Tôi đang chạy AIX 5.3
Về cơ bản, tôi muốn nó dừng thêm phần bổ sung \n
hoặc tìm cách loại bỏ nó.
\n
ở phía bên tay phải là không di động.
perl
hoặc công cụ khác có thể đối phó với dữ liệu nhị phân.
\<LF>
là cách truyền thống và POSIX để thêm ký tự LF. \n
thường sẽ thay thế một n
ký tự trong bất cứ thứ gì trừ GNU sed
.
s|...|&\n|
tốt như vậy?