【问题标题】:Why the command used to remove BOM doesn't work?为什么用于删除 BOM 的命令不起作用?
【发布时间】:2016-03-16 13:46:14
【问题描述】:

我找到了一个命令在我的所有级别文件夹和目录中查找带有 BOM 的 utf-8 文档,然后删除 BOM。但它似乎在我的计算机(osx)上不起作用......我应该先在我的机器上安装moodle以便在我的命令行中运行它吗?

下面是命令:

find . -type f -exec sed 's/^\xEF\xBB\xBF//' -i.bak {} \; -exec rm {}.bak \;

我得到的结果是sed: -i.bak: No such file or directory和文件中的所有内容,看起来很奇怪。

感谢您的帮助!

【问题讨论】:

  • 什么不起作用?结果如何?
  • 刚刚更新了问题。谢谢!!

标签: macos unicode utf-8 character-encoding byte-order-mark


【解决方案1】:

您找到的命令是用于 GNU 的 sed,它支持任何地方的可选参数。最糟糕的是,OS X 的 sed 似乎不支持非 ASCII 字节序列。

相反,对于 OS X,请使用以下使用 Perl 的答案:https://stackoverflow.com/a/9101056/1554386

将其绑定到find中如下:

find . -type f -exec perl -e 's/\xef\xbb\xbf//;' -pi.bak {} \;

您可以根据需要从命令中添加-exec rm {}.bak \;,但您也可以轻松地单独添加

【讨论】:

  • 谢谢阿拉斯泰尔。这很有帮助!我以后会用的! :)
  • Np。顺便说一句,如果它们对您有用,请确保您投票并接受问题。如果人们认为你会奖励他们的回答,他们更有可能做出回应。
  • 糟糕,我以为我已经投票给你了。所以才投票。再次感谢您!
  • 不用担心 - 另请参阅有关接受答案的信息:meta.stackexchange.com/questions/5234/…。基本上,您会因接受而获得额外的声誉
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-15
  • 1970-01-01
  • 1970-01-01
  • 2023-02-23
  • 2015-04-29
  • 1970-01-01
  • 2018-07-27
相关资源
最近更新 更多