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