使用sed替换一系列十六进制值

时间:2013-04-12 14:51:23

标签: sed hex

我想将x'00到x'40'中的十六进制字符系列替换为我文件中的空格。 我不想为每一个写一个sed -e的/ \ x00 // g'..有没有更有效的方法呢?

3 个答案:

答案 0 :(得分:3)

这可能会为您完成,具体取决于您的环境和sed版本。 (它避免搞乱标签,但没有理由避免空间,因为你只是用另一个空格替换它。)

LANG='' sed 's/[\x00-\x08\x0A-\x40]/ /g'

这会在sed命令的持续时间内清除LANG。例如,如果你的环境是UTF8,这可以解决一些问题。

答案 1 :(得分:0)

使用tr代替sed。首先,您必须将字符代码从十六进制转换为八进制。假设你想要0到77八进制。这就是:

tr '\0-\77' ' ' < your-input-file

答案 2 :(得分:0)

这样:

.htaccess

或粗糙:

LC_ALL=C sed 's/[\x00-\x40]/ /g'

测试:

(LC_ALL=C; sed 's/[\x00-\x40]/ /g')