LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 908|回复: 2

新手的练习本,更改文本编码

[复制链接]
发表于 2006-2-3 13:03:39 | 显示全部楼层 |阅读模式
学习了几天shell,感觉越来越有意思。从rh9转到rhel4,字符编码由gb2312到了utf8,以前的文档就只能用gedit看了,为了用vi看起来方便,写了这个,权作新手练习。对于高手来说或许一两行就解决了,大家别笑话啊。

#本程序设计用于将文本编码由gb2312转换为utf8

#第一步:读取文件信息,看是否utf8,如果是就跳过,否则输出到文件infout;;因为发现本机上的gb2312在file后显示为ISO-8859,但是用'iconv -f gb2312 -t utf8'有效;

#第二步:逐行读取,对输出文件执行转换和重命名。用'-o'参数重命名,在原来名称后上加上utf8。

if [ -f infout ];then
        rm infout
fi

if [ -f strnew ];then
        rm strnew
fi

for FILE in *;do
        file $FILE | grep 8859 >> infout
done

awk -F":" '{print $1}' infout > strnew

cat strnew | while read line;do
        echo "$line will be UTF8"
        iconv -f gb2312 -t utf8 $line -o "$line".utf8 && rm $line
done

还有问题:
有些文件在file命令后显示non-iso,怎么转换?
发表于 2006-2-4 04:51:24 | 显示全部楼层
挺不错啊。"non-iso" 还没有见过。是不是表示那个文件不是光盘镜像文件呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-4 12:45:46 | 显示全部楼层
Post by yongjian
挺不错啊。"non-iso" 还没有见过。是不是表示那个文件不是光盘镜像文件呢?

不是,它就说我的文本编码不是国际标准,不知道当初用的什么。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表