mac/linux批量转换文件编码
来源:互联网 发布:k近邻算法代码 matlab 编辑:程序博客网 时间:2024/06/05 20:49
坑*的 Android 老师,期末考试让我们在他给出的项目上继续写代码。。。然而,给出的项目中,java 代码部分用的是GB2312,其他地方用的都是 UTF-8,简直坑*。
由于 Mac/Linux 自带一个 iconv ,可以转换文件编码,所以可以借用这个命令来进行文件编码的批量转换。
进入主题,,直接贴代码
#!/bin/bashfind *.$1 -exec sh -c "iconv -f $2 -t $3 {} > {}.temp" \;find *.$1 -exec rm {} \;rename 's/\.temp$//' *.temp
注意:
有些版本的 osx 是不自带 rename 的,比如我目前(2016年12月)使用的osx10.12.2,需要自己安装rename 才可以使用,安装方式很简单,使用brew install rename
安装就可以了。
如果你连 brew 都没装(请容许我做一个鄙视的表情)。。。请自行百度 brew 安装方式。
ps:如果你不想装 brew 或者或者不想安装 rename,可以使用这个版本的代码
#!/bin/bashfind *.$1 -exec sh -c "iconv -f $2 -t $3 {} > {}.temp" \;find *.$1 -exec rm {} \;for files in *.tempdo mv $files ${files%.temp}done
使用方式:
按顺序传入三个参数:
要转码的文件拓展名 源编码 目的编码
e.g. alliconv.sh java gb2312 utf8
ps:
Mac 用户,如果你想把这个 shell 变为系统命令,你会发现 /usr/bin ,/usr/sbin 之类的目录都不能写入,这是 osx 在2015年下半年修改了安全策略,如果你看了 wwdc 2015的话可能会想起来,或者可以点这查看回顾,
如果你只是想快点解决问题的话,我就给你简单解释一下这个安全策略,这种策略叫做Rootless机制,简单来说,就是 root用户也无法操作某些系统关键部位。
此时就有两种解决方式:
1.新建一个运行目录
2.关闭 rootless
新建运行目录就不说了,
下面给出关闭 rootless 的操作方式:
//重启按住 Command+R,进入恢复模式,打开Terminal。csrutil disable
修改好了之后还可以选择再次打开,打开的方式为:
//重启按住 Command+R,进入恢复模式,打开Terminal。csrutil enable
以上代码在 osx10.12中测试通过,linux 待测试。
- mac/linux批量转换文件编码
- linux批量转换文件编码
- Linux批量转换文件编码
- mac 批量文件编码格式转换
- mac下批量转换文件编码
- Linux、Mac下GBK与UTF8编码文件的批量转换脚本
- linux下批量转换文件编码
- Linux下批量转换文件编码
- Mac下GBK与UTF8编码文件的批量转换
- Mac下GBK与UTF8编码文件的批量转换
- 批量转换文件编码
- 批量转换文件编码
- 批量文件编码转换
- Linux批量转换gbk编码文件到utf8编码
- linux下GBK->UTF-8文件编码批量转换脚本
- linux下GBK->UTF-8文件编码批量转换脚本
- Linux下GBK->UTF-8文件编码批量转换命令
- linux 下 GBK-UTF-8文件编码批量转换脚本
- 第九周项目1-猴子选大王数组版
- 【第十五周 项目2—用哈希法组织关键字】
- 第十五周 项目3 B-树的基本操作
- 处理 /usr/bin/ld: cannot find -lc等编译问题
- 纹理对象的使用
- mac/linux批量转换文件编码
- Django Web实现动态三级联动
- MySQL的安装和密码设置
- Oracle 误删表及数据后恢复
- Jmeter CSV参数化注意事项
- 第12周项目4 - 利用遍历思想求解图问题(4)
- 数字波束合成的一些理解
- 用Irony实现一个计算器附上源码
- 第九周项目2-对称矩阵压缩存储的实现与应用(1)