删除0个字符

时间:2015-10-24 05:26:17

标签: shell

我有一个文本文件,其中包含一些行后的垃圾字符。据我所知,这是字符0(不是'0')虽然我不确定。当我在vi中打开文件时,这样的行看起来像这样:

ESH6^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@

我只对该行的"ESH6"部分感兴趣,我不想要其余部分。如果我hexdump -C该行看起来像这样(hexdump -C foo.txt | head -n 2,则"49705"是另一行的一部分):

00000000  45 53 48 36 00 00 00 00  00 00 00 00 00 00 00 00  |ESH6............|
00000010  00 00 00 00 0a 0a 34 39  37 30 35 0a 0a 0a 0a 45  |......49705....E|

如何从文件中删除此字符的所有实例?

1 个答案:

答案 0 :(得分:3)

使用tr命令:

tr -d '\0' < foo.txt > output

这将从标准输入中删除(-d)所有空字节('\0'),并将其他所有内容写入标准输出。 tr命令是纯过滤器;它只读取标准输入,只写入标准输出。