我正在尝试使用Unix平台从多个文本文件中删除“ ^ @”。我已经找到了this解决方案,但不适用于我的情况。我还使用了sed -i -e 's/^@//g' testfile.txt
和dos2unix testfile.txt
。
样本数据放在here中。
任何建议将不胜感激。
答案 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