linux sed对hexa不做任何操作

pgvzfuti  于 11个月前  发布在  Linux
关注(0)|答案(2)|浏览(99)

我想用sed替换单字节文件上的换行符

-(mar. déc. 05 11:45:16)--(moddgsa001.a2297:/home/marc/avirer)-
[root] # ls -l
total 4
-rw-r--r--. 1 root root 1  5 déc.  11:45 saut-de-ligne_UTF-8
-(mar. déc. 05 11:53:52)--(moddgsa001.a2297:/home/marc/avirer)-
[root] # od -h saut-de-ligne_UTF-8
0000000 000a
0000001
-(mar. déc. 05 11:53:57)--(moddgsa001.a2297:/home/marc/avirer)-
[root] #  sed -i 's/\x0a/\x25/g' saut-de-ligne_UTF-8
-(mar. déc. 05 11:54:06)--(moddgsa001.a2297:/home/marc/avirer)-
[root] # od -h saut-de-ligne_UTF-8
0000000 000a
0000001

字符串
但这没用。我不明白。有什么想法吗?

8ehkhllq

8ehkhllq1#

sed作用于以\x0a结尾的行,字符不是它作用的字符串的一部分。
Perl来救援!

perl -i -pe 's/\x0a/\x25/' saut-de-ligne_UTF-8

字符串

2izufjch

2izufjch2#

行分隔符不是sed操作的文本的一部分。因此,您不能替换它。
您可以使用tr来进行翻译:

tr '\012' '\045' < saut-de-ligne_UTF-8 > tmp
mv tmp saut-de-ligne_UTF-8

字符串

相关问题