`

shell处理字符编码

阅读更多

    之前使用的dropbox中,会存放一些文本文件,在windows上的默认编码都是gb2312来做的保存,现在完全切换到ubuntu上,所以需要对所涉及到的一些文本文件的编码修改,文件多啦,谁都不想手工一个一个修改,那就写脚本来处理吧!

 

    思路:

    1. 首先,我得知道这个文件具体采用的是什么样的编码,如果是ISO-8859我将会把它转成UTF-8,其他的ASCII这些都先不做处理,这里可以使用file filename或者是enca iconv

    enca需要获取下:sudo apt-get install enca

    iconv的一般用法是:(可以man iconv)

    -f from code 源文件编码

    -t to code 目标文件编码

    -o output file 保存为文件

例子:

 

    iconv -f GB2312 -t UTF-8 -o google.txt google.txt

    将google.txt的编码由GB2312更新为UTF-8

 

    enca也同上用法,一般在脚本中对于未曾提供的语言,enca不会报错,这样可以保证脚本顺利执行

 

    enca -L zh_CN file 检查文件编码

    enca -L zh_CN -x UTF-8 file 将文件编码修改为UTF-8并覆盖文件

 

    具体的用法都可以去查看man手册或者google之

 

    好了,不多说,查看脚本吧!

 

#!/bin/bash -x

#由于之前使用windows系统来存放过一些文本文件,利用dropbox同步过来的时候,文件发生乱码,故写脚本来批量处理

#这里是对所有的需求文件进行处理,后续可根据修改目录进行处理

SUBFIX="txt html htm conf"

#cd /home/gavin/tmp

if [ -z $1 ];then
    cd $PWD
else
    if [ -d $1 ];then
	cd $1
    else
   	echo " $1 is not exist;"
	exit 1
    fi
fi

for i in $SUBFIX;
do
    files=`find . -name "*.$i"`
    for f in $files;
    do
	type=`file $f|awk -F':' '{print $2}' |awk  '{print $1}'` #获取文件类型
	if [ $type = "ISO-8859" ];then
	    #iconv -f GB2312 -t UTF-8 -o $f $f
	    enca -L zh_cn -x UTF-8 $f
	else
	    echo "$f encoding is :$type"
	fi
	
    done
done
 

 

 

 

分享到:
评论

相关推荐

    shell实现字符编码转换工具分享

    总的来说,这个shell脚本提供了一种简单且实用的方法来批量处理文件的字符编码转换问题,尤其适用于需要在GBK和UTF-8之间频繁切换的场景。通过这个脚本,我们可以避免手动转换大量文件的繁琐过程,提高了工作效率。

    linux下目录文件字符编码转换shell脚本

    使用方法:./fconv type1 type2 dir 含义:from 'type1' to 'type2' in directory 'dir'

    Shell编程范例之字符串操作-TinyLab原创

    例如,利用正则表达式处理特定格式的文本数据,使用sed和awk进行文本文件的编辑操作,甚至可以通过Shell脚本实现进制转换和编码转换。 在字符串操作中,正则表达式是一个十分强大的工具。它通过定义字符的规则集合...

    java字符编码错误整理大全

    ### Java字符编码错误整理大全 #### 一、概述 在Java开发过程中,字符编码问题是非常常见且容易引发一系列乱码问题的重要因素。本篇将详细梳理Java中的字符编码相关知识点,帮助开发者解决实际工作中遇到的各种...

    java调用shell向DataX传参,带where条件,特殊字符

    在Java程序中调用Shell命令并传入带有特殊字符的参数时,会遇到一些挑战,因为Shell和DataX对特殊字符的处理方式可能不同。 首先,让我们理解Java如何调用Shell命令。在Java中,我们可以使用Runtime或者...

    Shell中字符串排序的几种方法

    在Shell脚本编程中,对字符串进行排序是一个常见的任务,特别是在处理文本文件、日志或者其他包含文本数据的场景。本文将详细介绍三种在Shell中对字符串进行排序的方法。 **方法一:按ASCII正向排序** 在Shell中,...

    谷歌浏览器_编码工具——

    总之,虽然谷歌浏览器移除了直接的“编码格式”选项,但它仍然具有处理各种字符编码的能力,并通过扩展插件提供给需要的用户额外的控制。这种优化是为了提供更快、更简洁的浏览体验,同时确保大多数用户的需求得到...

    ascii转普通字符

    在实际应用中,了解ASCII编码对于处理文本文件、网络通信和低级别编程非常重要,因为它是最基础的字符编码之一。 至于压缩包子文件的文件名称列表,如`main.c`,这通常是一个C语言源代码文件,可能包含了实现ASCII...

    URL解码-编码器URL解码-编码器

    - 非ASCII字符处理:非英文语言的网站URL中可能包含非ASCII字符,需要编码才能在网络上传输。 **URL编码与解码的工具** 在实际操作中,开发者通常会使用编程语言提供的内置函数进行URL编码和解码,例如JavaScript的...

    Linux字符处理基础

    Linux字符处理基础主要涉及Linux操作系统中用于字符数据的处理和操作的方法,这些操作大多数在shell环境中执行。字符处理基础操作在文本编辑、数据处理和自动化任务中非常重要。这部分内容涵盖了管道文本搜索、文本...

    shell脚本 字体转换 gb2312到UTF-8

    这是shell写的一个小脚本 为了让那些在linux下查看windows下的一些文件提供方便 只需将后缀改成.sh 再将其拷贝到你要转换的文件夹下 运行就OK

    shell编程对车牌文档规范和排序

    4. **字符编码**:考虑到车牌文档可能包含中文字符,理解字符编码(如UTF-8)是至关重要的,以确保在处理过程中不会出现乱码问题。 5. **排序算法**:在完成字符规范后,我们需要对车牌号进行排序。在shell中,可以...

    Shell脚本把文件从GBK转为UTF-8编码

    GBK和UTF-8是两种常见的字符编码格式,它们各自有着不同的特点和应用场景。GBK是中国大陆广泛使用的多字节字符集,包含了大部分汉字,但不支持所有Unicode字符。而UTF-8是一种可伸缩的Unicode编码,能表示Unicode...

    java Sokcet远程调用shell

    4. **数据编码**:确保客户端和服务器之间正确处理字符编码,防止乱码问题。 六、示例代码片段 ```java // 服务器端 ServerSocket server = new ServerSocket(8080); while (true) { Socket client = server....

    linux 编码文件

    locale是操作系统中一个配置单元,它定义了日期和时间的格式、数字的表示方式、货币符号,以及最重要的,字符编码。`locale-archive`文件是动态生成的,用于快速查找和加载locale信息,确保系统能正确处理不同语言...

    SSH Secure Shell Client中文乱码

    根据提供的描述,“SSH Secure Shell Client中文乱码”这一现象重复出现,表明用户在使用SSH Secure Shell Client时遇到了严重的字符编码问题。中文乱码通常表现为中文字符显示为乱码或无法正确识别中文字符,这可能...

    shell编程大全

    - 字符转换和压缩的实际应用:通过实例了解tr在文本格式化、编码转换等方面的应用。 这些工具在日常系统管理和自动化任务中发挥着关键作用。通过深入学习和实践,你可以编写出强大的shell脚本来处理各种复杂的数据...

    Aspx Shell v1.3

    5. **编码与解码**:在传输命令和接收结果时,需要注意字符编码的问题,确保正确地编码和解码以避免乱码或解析错误。 6. **错误处理**:当命令执行失败时,Aspx Shell应能够优雅地处理错误,向用户反馈错误信息,...

Global site tag (gtag.js) - Google Analytics