我正在运行以下2条sed
命令。第一个在我想要的位置添加换行符,第二个在我想要的位置添加换行符,但是在文件的末尾还添加了一个额外的换行符,以前没有。
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
,要么找到一种删除它的方法。
@JosephR。
—
斯特凡Chazelas
\n
在右侧不便于携带。
@StephaneChazelas太奇怪了。是CR vs CRLF吗?
—
Joseph R.
没有以换行符结尾的文件不是文本文件,因此未指定文本实用程序的行为。使用
—
斯特凡Chazelas
perl
或其他可以处理二进制数据的工具。
@JosephR。不,这
—
斯特凡Chazelas
\<LF>
是添加LF字符的传统方式和POSIX方法。\n
通常会用n
GNU以外的任何字符代替字符sed
。
s|...|&\n|
呢?