如何从Unix中的文本文件中删除“ ^ @”?

时间:2018-10-29 12:24:13

标签: linux unix text-editor

我正在尝试使用Unix平台从多个文本文件中删除“ ^ @”。我已经找到了this解决方案,但不适用于我的情况。我还使用了sed -i -e 's/^@//g' testfile.txtdos2unix testfile.txt。 样本数据放在here中。

任何建议将不胜感激。

1 个答案:

答案 0 :(得分:2)

您看到的^@不是文字字符串。这是NUL的转义码(字符值0)。如果要全部删除:

tr -d '\0' <test.txt >newfile.txt

为帮助诊断此类问题,od(八进制转储)实用程序非常方便。我在您链接的测试文件上运行了此文件,以确认它们是NUL:

$ od -c test.txt | head
0000000  \0   A  \0   i  \0   r  \0   Q  \0   u  \0   a  \0   l  \0   i
0000020  \0   t  \0   y  \0   S  \0   t  \0   a  \0   t  \0   i  \0   o
0000040  \0   n  \0   E  \0   o  \0   I  \0   C  \0   o  \0   d  \0   e
0000060  \0  \n  \0   D  \0   E  \0   H  \0   E  \0   0  \0   4  \0   4
*
0000400  \0  \n  \0   D  \0   E  \0   H      \0   E  \0   0  \0   4  \0
0000420   4  \0  \n  \0   D  \0   E  \0   H  \0   E  \0   0  \0   4  \0
*
0422160   4  \0  \n  \n
0422164