2011-07-31 59 views
4

UTF-8的文件test.txt:SED十六进制替换

AAAAAAAAAAAAAA 

十六进制是

41 41 41 41 41 41 41 41 41 41 

sed s/A/B/g test.txt工作

sed s/\x41/B/g test.txt不起作用

一些字符是不可打印等等我必须使用他们的十六进制,A只是一个例子。

回答

11

shell对其进行预处理,使用单引号。

sed 's/\x41/B/g' test.txt 

echo -e \x41 # x41 
echo -e '\x41' # A 
+0

的感谢! echo -e'\ x41'#A是好的,但是sed的/ \ x41/B/g'test.txt不是。 – toughtalker

+0

$'echo A | sed的/ \ x41/B/g'' => B. GNU sed版本4.2.1 –

+0

似乎是mac os上的系统特定x – toughtalker

4

如果你只是想更换单个字符,你应该能够使用TR与八进制转义是这样的:

tr '\101' B