从文本文件中删除二进制符号

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

【讨论】:

以上是关于从文本文件中删除二进制符号的主要内容,如果未能解决你的问题,请参考以下文章

写入文本文件,二进制与 ascii

PHP 从文本中删除标点符号。

从聚焦的只读输入中删除文本插入符号/指针

从R中的文本中删除单词和符号

如何从特定的二进制文件格式中提取文本?

C++ 以二进制形式读取文本文件并在控制台中显示