在 Vim 中,^@ 表示 ASCII 码中的 NULL 字符,编码为 0x00,占用一个字节。
删除方法
方法1,采用 或 或 按键输入在 Vim 中输入 NULL 字符(显示为 ^@),然后将所有的 NULL 字符替换为空字符 ''。具体命令如下:
:%s///g
:%s///g
:%s///g
注, 表示按住键不放,然后按下字符 V 键; 表示按住 键和 键不放,然后按下字符 2 键。
注意,组合按键比较通用,按键 或 在某些电脑上可能失效。如果按键方式全部无效,可以采用方法 2。
方法2,在 Vim 替换文本命令时,采用 NULL 字符的 ASCII 编码表示。具体命令如下:
:%s/\%x00//g
也可以采用 按键,然后在 Vim 中输入 NULL 字符的 3 位八进制 ASCII 编码,即 000。具体命令如下:
:%s/000//g
方法3,采用 Linux 命令行工具 tr 。tr 工具用于转换、压缩或删除来自标准输入的字符,并写到标准输出。在 Vim 中的具体命令如下:
:%!tr -d '\000'
注, -d 为 --delete 的缩写,表示删除字符 '\000' 。
如果需要处理文件为 input.txt ,可在 Linux Bash 命令行中,使用如下命令:
tr -d '\000' < input.txt > output.txt
表示从文件 input.txt 读入文本,删除 NULL 字符(\000)后,输出到文件 output.txt 。
参考资料