2011-07-31 56 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