sed替换为十六进制

时间:2011-07-31 11:11:38

标签: linux sed grep

UTF-8文件test.txt:

AAAAAAAAAAAAAA

hex是

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只是一个例子。

2 个答案:

答案 0 :(得分:11)

shell预处理它,使用单引号。

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

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

答案 1 :(得分:4)

如果你只想替换单个字符,你应该能够像这样使用带八进制转义符的tr:

tr '\101' B