如何检测并删除包含 ^@ 的行

如何检测并删除包含 ^@ 的行

我有一个简单的问题:

在我的文件中,这些行包含字符串ˆ@ˆ@ˆ@ˆ@ˆ@ˆ@.我只想删除带有该字符串的所有行,例如使用sedorgrep命令。

我想知道为什么我的文件中会出现这样的字符串。它在 Linux/Unix 世界中意味着什么?

答案1

这些^@是空字符,其 ASCII 代码为 0。

您可以使用以下方法删除它们:

tr -d '\000' < myfile > myfile.out

或者:

sed 's/\x0//g' < myfile > myfile.out

这有可能是一个锉孔。我过去也遇到过这个问题 - 当我的磁盘空间不足并且进程试图写入它们时,这些空字符出现在我的日志中。

相关内容