如何删除Sublime Text 3中的<0x00>个字符?

时间:2018-07-20 19:51:44

标签: replace sublimetext3

问题

所以我有一个很大的文本文件,其中包含<0x00>个字符(请参见下图)。

Sublime Text 3 with <0x00> including replace option

如上图所示,我尝试使用正则表达式\x00删除那些字符。除此之外,我还尝试了\0\00,但没有成功。

但是,当我尝试在Sublime Text中替换这些字符时,弹出窗口显示确实找到了这些<0x00>字符(请参见下图),

occurrences found

不幸的是,当我单击“替换”按钮时,字符没有被替换。

问题

如何摆脱这些<0x00>字符?

p.s。值得一提的是,我无法在“ 0”上进行搜索,因为此文本文件包含零,而我希望保留为零。

正在进行的更新#1

我设法将<0x00>字符复制到“查找”搜索框中(见下图)。

但是,即使我尝试用文本文件中的空字符替换此字符,也不幸发生了更改。

progress update 1

进度更新2(解决方案)

没有@ 00的帮助,我找不到这个问题的答案,谢谢!

说明

该文件使用UTF-16编码,但我认为它是UTF-8。该文件在 BOM UTF-8中打开,这正是我无法删除Sublime Text 3中的<0x00>(NUL)字符的原因。

解决方案

在“ bash”或“终端”中执行以下命令:

sed -i 's/\x0//g' [textfile_name].txt

1 个答案:

答案 0 :(得分:2)

好的,我已经尝试过了,似乎正则表达式可以工作。确保选择了正则表达式选项(在图中突出显示),并使用\0的正则表达式:

Sublime

现在,只需确保替换文件中没有任何内容,然后单击全部替换即可。 NUL字符应该消失了。

注意

在阅读时,似乎您在其他所有字符之后都有一个NUL,这可能表明该文件实际上是UTF-16(如果是这种情况,您不要它们),因此需要重新加载。如果切换到UTF-16并且我的上述解决方案不起作用,则this线程可能对您有用。