Hex找到20并在LInux中替换为00

时间:2015-10-23 19:19:23

标签: linux sed hex tr

我有一个非常大的文件(21G),我想做一个查找/替换hex(找到20并替换为00)。我正在使用tr < filename* -d '\000' > newfilename 显然,这只是删除NULL。任何帮助都会很棒。

2 个答案:

答案 0 :(得分:0)

尝试:

 $ sed 's/\x20/\x00/g' file > newfile

甚至

   $ sed -i 's/\x20/\x00/g' file

如果您不想复制文件而只是替换源文件中的值

答案 1 :(得分:0)

不确定我理解你的问题......你说你想用十六进制0替换十六进制20,但你使用命令删除十六进制20而不是替换它?

无论如何,通常,在文件中用字符a替换字符b的命令是:

tr 'a' 'b' < inputFile > outputFile

在你的情况下,你想要替换hex 20,但tr只喜欢八进制,所以你现在有两个选择...要么自己将{16}的十六进制20改为八进制40:< / p>

tr

或者,让shell将您的十六进制20翻译成tr '\040' '\000' < inputFile > outputFile 可以理解的内容:

tr

最后一种形式称为tr $'\x20' '\000' < inputFile > outputFile ,并描述为here