我找到了一个命令在我的所有级文件夹和目录中查找带有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
以及文件中的所有内容,这看起来很奇怪。
感谢您的帮助!
答案 0 :(得分:2)
您找到的命令是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 \;
,但您可以轻松地单独执行此操作