如何检测和删除包含 ˆ@ 的行

jia*_*mao 6 grep sed special-characters text-processing

我有一个简单的问题:

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

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

dog*_*ane 13

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

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

tr -d '\000' < myfile > myfile.out
Run Code Online (Sandbox Code Playgroud)

或者:

sed 's/\x0//g' < myfile > myfile.out
Run Code Online (Sandbox Code Playgroud)

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