我试试这个:
find . -exec iconv -f iso8859-2 -t utf-8 {} ;
需要一种方法来临时redirectSTDOUT
Bash(价值太高的基地)
bash脚本 – sed返回ip地址
在不降低所述命令的function的情况下传递命令别名/function的最佳方式是什么?
尝试这个:
find . -type f -print -exec iconv -f iso8859-2 -t utf-8 -o {}.converted {} ; -exec mv {}.converted {} ;
它会使用带有'.converted'后缀(扩展名)的临时文件,然后将它移动到原来的名称,所以要小心,如果你有'.converted'后缀(我不认为你有)的文件。
另外,这个脚本对于包含空格的文件名是不安全的,所以为了更安全起见,您应该双引号:“{}”,而不是{}和“{} .converted”,而不是{} .converted
阅读关于enconv 。
如果你需要转换到你当前的终端编码,你可以这样做:
find . -exec enconv -L czech {};
或者正是你想要的:
find . -exec enconv -L czech -x utf8 {};
我发现这个方法对我来说效果很好,尤其是在我有多个文件编码和多个文件扩展名的情况下。
创建一个名为script.vim的vim脚本:
set bomb set fileencoding=utf-8 wq
然后在您希望定位的文件扩展名上运行脚本:
find . -type f ( -iname "*.html" -o -iname "*.htm" -o -iname "*.PHP" -o -iname "*.css" -o -iname "*.less" -o -iname "*.js" ) -exec vim -S script.vim {} ;
这里是一个例子来重新编码UTF-8从GIT的主分支的所有HTM / HTML文件。
git ls-tree master -r --name-only | grep htm | xargs -n1 -I{} bash -c 'recode "$(file -b --mime-encoding {})..utf-8" {}'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。