从文本文件中删除二进制符号
Posted
技术标签:
【中文标题】从文本文件中删除二进制符号【英文标题】:Removing binary symbol from text file 【发布时间】:2020-06-21 10:40:00 【问题描述】:我正在使用 dos2unix 命令将文本文件转换为 unix 格式,但我收到了几个文件的此消息:
dos2unix: Binary symbol found at line 6115
dos2unix: Skipping binary file w1.txt
当我在 notepad++ 中打开文本文件时,我看到以下内容:
如何从文本文件中删除这些二进制符号?有什么命令可以用吗?
【问题讨论】:
试试perl -p -e 's/[^[:ascii:]]//g' inputfile
,这将删除非 ascii 字符。不确定这是否适用于您的文件,但值得一试。
也许这些只是多字节字符?你检查过文件的编码吗?
我认为删除这个二进制字符是不明智的;您需要做的可能是将这些字符转换为正确的编码。 dos2unix 有很多选项可以做到这一点。尝试了解原始文件的编码以及您尝试在 notepad++ 中迁移到的编码。这里有例子:computerhope.com/unix/dos2unix.htm
file
报告的编码是什么?你能转储几行hexdump -C
输出吗?第 6130-6136 行会很好,因为 PUI
看起来像 æ (wrt 6131) 和 SSA
像 å。
如果您将Holbæk
重命名为Holbk
,它将不再是同一个城市。
【参考方案1】:
这些是仅供私人使用的字符。 More Info
如果您使用 dos2unix 删除 回车 字符,您可以尝试以下替代方法。
sed -i -e 's/\r//g' file
【讨论】:
以上是关于从文本文件中删除二进制符号的主要内容,如果未能解决你的问题,请参考以下文章