我有一个文本文件,其中包含一些行后的垃圾字符。据我所知,这是字符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|
如何从文件中删除此字符的所有实例?
答案 0 :(得分:3)
使用tr
命令:
tr -d '\0' < foo.txt > output
这将从标准输入中删除(-d
)所有空字节('\0'
),并将其他所有内容写入标准输出。 tr
命令是纯过滤器;它只读取标准输入,只写入标准输出。