【问题标题】: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,它将不再是同一个城市。

标签: text awk sed


【解决方案1】:

这些是仅供私人使用的字符。 More Info

如果您使用 dos2unix 删除 回车 字符,您可以尝试以下替代方法。

sed -i -e 's/\r//g' file

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-11
    • 2012-01-18
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 2020-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多