当我在vim中查看我的文件时,会显示以下符号。
---<snip>----
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@fstalone
---<snip>-----
我创建的文件是通过重定向我的实用程序的stdout
和stderr
,如下所示:#./my_util > util.log 2>&1
。此文件往往会变得非常大(~4 MB)
1.这个符号是什么
1.如何摆脱它?
3条答案
按热度按时间wtzytmuj1#
这就是null character,其格式称为caret notation(您可能已经注意到,Vim经常使用这种格式)。基本上,不知何故,你会在文件中得到充满零的字节。
由于我们不知道您的实用程序在做什么,如果它是罪魁祸首,如果您希望我们提供帮助,您需要向我们展示一些代码。否则,如果您只想从文件中删除字符,请使用替换:
Ctrl-V
标记转义序列的开始。在按下Ctrl-J
之后,您应该看到^@
出现在您的命令中。因此,正如您所猜测的,Ctrl-V, Ctrl-J
是空字符的一个转义序列。yshpjwxd2#
以上都不适合我。我有一个文件,在某些行的末尾有'^@',我想替换它。我设法通过使用以下命令搜索“[\x0]”来替换它:
我希望它能为某人节省一个小时的生命。这里有一个解释,我会回去读,当我不那么忙碌:A discussion with a better explanation
55ooxyrt3#
当你尝试在vim中打开一个非文本文件时,^@会出现。例如,如果您打开一个exe文件或图像文件,则会显示^@,这是一个不可读的字符。尝试在其他编辑器中打开该文件并查看结果