问题
所以我有一个很大的文本文件,其中包含<0x00>
个字符(请参见下图)。
如上图所示,我尝试使用正则表达式\x00
删除那些字符。除此之外,我还尝试了\0
和\00
,但没有成功。
但是,当我尝试在Sublime Text中替换这些字符时,弹出窗口显示确实找到了这些<0x00>
字符(请参见下图),
不幸的是,当我单击“替换”按钮时,字符没有被替换。
问题
如何摆脱这些<0x00>
字符?
p.s。值得一提的是,我无法在“ 0”上进行搜索,因为此文本文件包含零,而我希望保留为零。
我设法将<0x00>字符复制到“查找”搜索框中(见下图)。
但是,即使我尝试用文本文件中的空字符替换此字符,也不幸发生了更改。
没有@ 00的帮助,我找不到这个问题的答案,谢谢!
说明
该文件使用UTF-16编码,但我认为它是UTF-8。该文件在 BOM UTF-8中打开,这正是我无法删除Sublime Text 3中的<0x00>
(NUL)字符的原因。
解决方案
在“ bash”或“终端”中执行以下命令:
sed -i 's/\x0//g' [textfile_name].txt
答案 0 :(得分:2)
好的,我已经尝试过了,似乎正则表达式可以工作。确保选择了正则表达式选项(在图中突出显示),并使用\0
的正则表达式:
现在,只需确保替换文件中没有任何内容,然后单击全部替换即可。 NUL字符应该消失了。
注意
在阅读时,似乎您在其他所有字符之后都有一个NUL,这可能表明该文件实际上是UTF-16(如果是这种情况,您不要它们),因此需要重新加载。如果切换到UTF-16并且我的上述解决方案不起作用,则this线程可能对您有用。