Linux SED是否替换文件中的十六进制而不是插入\x2A

Linux SED是否替换文件中的十六进制而不是插入\x2A,sed,replace,hex,Sed,Replace,Hex,我有以下字节: E6 2A 1B EF 11 00 00 4E 43 DB E8 我需要将其替换为以下内容: 64 08 1A EF 11 00 00 DA D8 26 04 当我开始做实验时,我注意到一件奇怪的事情 sed-e's/\xE6/\x64/g' 此代码将第一个E6替换为64 ok 但是,当我尝试更改更多字节(2A)时,会导致问题 sed-e's/\xE6\x2A/\x64\x08/g' 据我所知,2A插入了相同的代码。。如何避免呢?我只需要把2A换成08。提前感谢:) 更新

我有以下字节: E6 2A 1B EF 11 00 00 4E 43 DB E8

我需要将其替换为以下内容: 64 08 1A EF 11 00 00 DA D8 26 04

当我开始做实验时,我注意到一件奇怪的事情

sed-e's/\xE6/\x64/g'

此代码将第一个E6替换为64 ok

但是,当我尝试更改更多字节(2A)时,会导致问题

sed-e's/\xE6\x2A/\x64\x08/g'

据我所知,2A插入了相同的代码。。如何避免呢?我只需要把2A换成08。提前感谢:)

更新


现在,我坚持使用\x26
sed-e's/\xDB/\x26/g'
此代码拒绝将DB替换为26,但当我运行
s/\xDB/\xFF
时,它可以工作。有什么想法吗?这样一来,26就有问题了。我尝试过[\x26],但在这里没有帮助


s/\xDB/\&/g'
似乎在工作:)

\x2a
*
,它在正则表达式中是特殊的:

$ sed 's/a*/b/' <<<'aaa'
b
$ sed 's/a\x2a/b/' <<<'aaa'
b

请记住,
\1
\2
等和
&
在更换零件中也是特殊的。读取-但是您需要转义
\xXX
序列而不是每个字符(或者先将字符转换为实际字节,为什么要使用所有
\xXX
序列?)。或者选择另一个工具。

现在我已经卡在\x26上了
sed-e's/\xDB/\x26/g'
此代码拒绝将DB替换为26,但当我运行
s/\xDB/\xFF
时,它可以工作。有什么想法吗?
记住\1\2等和&在替换零件中也很特殊
-你有吗?你读了吗?
$ sed 's/\xE6[\x2A]/OK/' <<<$'I am \xE6\x2A'
I am OK
$ sed 's/[\xE6][\x2A]/OK/' <<<$'I am \xE6\x2A'
I am �*
$ LC_ALL=C sed 's/[\xE6][\x2A]/OK/' <<<$'I am \xE6\x2A'
I am OK