我试试这个:
find . -exec iconv -f iso8859-2 -t utf-8 {} ;
但输出进入屏幕,而不是相同的文件。 怎么做?
Bash:从bash函数返回一个string
需要一种方法来临时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" {}'
总结以上是内存溢出为你收集整理的如何更改许多文件中的编码?全部内容,希望文章能够帮你解决如何更改许多文件中的编码?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)