linux下文件字符集转化实战篇
linux下文件字符集转化实战篇
------------------------------------------
为什么转换编码,起因:分析应用程序日志,文件编码格式gb2312(含中文字符),
通过linux shell脚本从日志中提取出需要的字段并生成有固定符号隔离的文本文件导入到mysql数据库,
mysql建立的库字符集是utf8(特殊原因没有改成gb2312),由于原始的日志文件是gb2312格式,
通过shell生成的最终文件编码格式也是gb2312编码,所以才需要用到编码转换,
mysql库字符集编码必须与导入的文本文件编码格式一致,才能顺利导入。
脚本
# vi x
#!/bin/sh
ts=`(date +%Y%m%d)`
#targetdir=/root/siji/
#cd $targetdir
cat alertlog | grep $ts | grep -a '级' > c34log
# 逐一取需要的字段,并用;号隔开
cat c34log | awk '{print $1}' | sed 's/.*$/&\;/g'>s1
cat c34log | awk '{print $2}' | sed 's/.*$/&\;/g'>s2
cat c34log | awk '{print $3}' | sed 's/.*$/&\;/g'>s3
cat c34log | awk '{print $4}' | sed 's/.*$/&\;/g'>s4
cat c34log | awk '{print $5}' | sed 's/.*$/&\;/g'>s5
cat c34log | awk -F'(' '{print $2}' | awk -F')' '{print $1}' | sed 's/%//g' | sed 's/.*$/&\;/g' >s6
# 合成各个字段,生成最终文本文件
paste s1 s2 s3 s4 s5 s6 > all
# 把含中文的文本文件转换成的utf8编码格式
enca -L zh_cn -x utf8 all
# 导入数据库
/usr/local/mysql/bin/mysql -h 127.0.0.1 -u root -pYOUR_PASSWORD <sql
sql文件内容(sql语句)
# vi sql
# 使用alertlog数据库
use alertlog;
# 导入生成的all文本文件,其中用;隔离各个字段,回车隔离每行
load data local infile 'all' into table c3log fields terminated by ';' lines terminated by '\n';
# chmod 711 x
一:字符编码的转换工具
1.多平台方法:
iconv 提供标准的程序和API来进行编码转换;
convert_encoding.py 基于Python的文本文件转换工具;
decodeh.py 提供算法和模块来谈测字符的编码;
2.Linux:
recode 转换文件编码;
Utrac 转换文件编码;
cstocs 转换文件编码;
convmv 转换文件名编码;
enca 分析给定文件的编码;
3.Windows:
cscvt 字符集转换工具;
二:linux下查看文件编码
1. 在vi中查看文件编码
:set fileencoding
2. 用enca强大的查看编码工具
# 查看文件编码
# enca -L 现在文件的语言 -d 需查看编码的文件名
如 enca -L zh_cn -d test_zh_cn.file
------------
# enca -l language 查看支持的语言
三. linux转换文件编码
1.enca转化编码(强烈推荐enca工具)
# enca -L 现在文件的语言 -x 需要转换编码 需要转换编码的文件
如 enca -L zh_cn -x utf8 test_zh_cn.file
2. iconv转换,这个工具不好使!经常转化不成功
iconv -f 文件原来编码 -t 需要转换的编码 需要转换的编码的文件 -o 转换编码后的文件
或者
iconv -f 文件原来编码 -t 需要转换的编码 需要转换的编码的文件 > 转换编码后的文
转载于:https://blog.51cto.com/wanwentao/761716
相关文章:

如何得到数据库中所有表字段及字段中文描述
如何得到数据库中所有表字段及字段中文描述以下资料,通过csdn的一位师兄从SQL版主那得到:sql中SELECT (case when a.colorder1 then d.name else end) N表名, a.colorder N字段序号, a.name N字段名, (case when COLUMNPROPERTY( a.id,a.name,IsIdentity)1 then √else end)…
它估值25亿!被马云领投,是华为“老战友”,网友:也许股价能超茅台!
最近一条新闻被炒的沸沸扬扬:十年以来中国最大IPO,中芯国际将融资532亿元!何为IPO?翻译即为一家公司第一次向全社会公开售出它的股份。买的人越多,代表着社会对其信心越大。为什么2020年,能爆发这样1场最大…

改變人生的21種好習慣
當一個人生活枯燥的時候, 他忘了用心體會是一種習慣。 當一個人覺得人生乏味的時候, 他忘了培養幽默是一種習慣。 當一個人體力日差的時候, 他忘了運動建身是一種習慣。 當一個人工作疲憊的時候, 他忘了認真休息是一種習慣。 當一…
Python 编程语言的核心是什么?
作者 | Brett Cannon译者 | 弯月,责编 | 王晓曼头图 | CSDN下载自视觉中国出品 | CSDN(ID:CSDNnews)为什么要问这个问题?我想要用Python实现WebAssembly,这并不是什么秘密。这不仅可以让Python进入浏览器&a…

关闭页面不用提示的方法
Response.Write("<script>window.openernull;window.close();</script>") ;

VIM 必知必会12大类型操作
2019独角兽企业重金招聘Python工程师标准>>> VIM是在unix/linux系统下最常用的文本编辑器,呵呵……这就不用我再强调了,现在直接贴上vim的最常用的操作,方便日后温习及查阅! 1、插入 i 在光标前插入 I 在行首插入 a 在光标后插入 …

前后端分离的思考与实践(三)
Midway-ModelProxy — 轻量级的接口配置建模框架前言使用Node做前后端分离的开发模式带来了一些性能及开发流程上的优势(见《前后端分离的思考与实践 一》), 但同时也面临不少挑战。在淘宝复杂的业务及技术架构下,后端必须依赖Java搭建基础架构,同时提供…

替换HTML代码
将一些HTML替换掉 eg:strContentstrContent.Replace("&","&");strContentstrContent.Replace("","");strContentstrContent.Replace("<","<");strContentstrContent.Replace(">&quo…

什么是线程安全?
http://baike.baidu.com/view/1298606.htm 线程安全 目录 什么是线程安全?举例线程安全性线程安全程度不可变线程安全有条件的线程安全线程兼容线程对立什么是线程安全?举例线程安全性线程安全程度不可变线程安全有条件的线程安全线程兼容线程对立展开编…
中国开源大爆发进行时,你没掉队吧?
作者 | 陈利鑫头图 | CSDN 下载自东方 IC出品 | CSDN(ID:CSDNnews)从开源(Open Source)一词提出到如今,开源的概念越来越成熟,作为一种创造及协作模式,开源已经不仅仅局限于软件技术…

eclipse设置
2019独角兽企业重金招聘Python工程师标准>>> eclipse 下载 地址 http://www.eclipse.org/downloads/packages/release/Ganymede/SR2 设置 jdk 参数 jre definition vm arguments -Xms800m -Xmx800m -XX:MaxNewSize256m -XX:MaxPermSize256m -Dfile.encod…
吊打一切:YOLOv4的tricks汇总
来源 | AI算法与图像处理(ID:AI_study)即使是目标检测在过去几年开始成熟,竞争仍然很激烈。如下所示,YOLOv4声称拥有最先进的精度,同时保持高处理帧速率。它在 MS COCO数据集上,使用Tesla V100以接近65 FPS…

如何播放RM文件?
<EMBED SRC"MY_LIFE.RPM" WIDTH300 HEIGHT134 >Tip:SRC是可以省略的,当mime Type 参数如下时:<EMBED ...,TYPE"audio/x-pn-realaudio-plugin",...>,这样做会产生不可预料的结果,因此强烈推荐你包…

mongodb地理位置索引实现原理
地理位置索引支持是MongoDB的一大亮点,这也是全球最流行的LBS服务foursquare 选择MongoDB的原因之一。我们知道,通常的数据库索引结构是B Tree,如何将地理位置转化为可建立BTree的形式,下文将为你描述。 首先假设我们将需要索引的…

NSMakeRange基础函数应用
NSRange NSMakeRange (NSUInteger loc,NSUInteger len );这是官方得接口描述。loc 为location缩写,len 表示长度。作用:在loc指定得位置开始往后获取len长度个得元素。示例程序使用这个函数来为指定数组得某个位置向后指定长度得元素集合。如NSRange NSM…

上传图片,要求图片200100象素,大小小于2M
作者:网际浪子专栏(曾用名littlehb) http://blog.csdn.net/littlehb/上传图片,要求图片200100象素,大小小于2M,如果图片不符合要求,不能上传,否则上传图片,上传以后对图…
炸裂!这些大厂跪求的人才太牛了!
今年所有的互联网公司都在ALL in AI,百度、腾讯、阿里巴巴、京东等互联网巨头都在四处挖掘AI人才。AI的岗位需求很多,几乎每天都有数百个JD放出。而亿欧智库发布的《2020全球人工智能人才培养研究报告》提到,近4年AI人才的需求量以每年74%的速…

新春祝福必杀计之发送短信攻略
新的一年就要到了,陆陆续续的收到很多同事们的短信祝福,哎,不能欠人家的人情债啊,但是我实在是个懒人啊,这个祝福短信还是要回复的啊,我的手机里有超过百位联系人,全是和工作有关的,…
centos6.5环境DNS-本地DNS主从服务器bind的搭建
centos6.5环境DNS-本地DNS主从服务器bind的搭建在上一篇博客中我已经搭建好了一个本地DNS服务器,能够实现正向反向解析,那么我们只需要加入一台从DNS服务器即可完成,我们来开始配置主从服务器:一.主DNS服务器上面的额外…
再见,Python!
结合我最近这些年的 Python 学习、开发经验,发现近90%的程序员在学 Python 时都会遇到下面这3个问题:1.想学Python,但不知从何学起,应用方向太多了也不知道该选择什么方向...2.基础入门看似简单,但是进阶实战就举步维艰…

如何更新父窗体
Response.Write("<script languagejavascript>window.opener.locationwindow.opener.location.href;</script>") 第一种方案是:file a.htm function OpenDialog(url,param){return window.open(url,param, "DialogWidth:450px;DialogH…

文件体积单位的换算
单位转换(参考): 1bit(这个比特表示一个二进制数字) 1Byte(这个单词音译过来也叫“比特”但是表示一个十六进制的数字) 1B1Byte8bit 1 kB 1024 B (kB - kilobyte) 千 1 MB 1024 kB (MB - mega…

防止盗链下载问题
经常在网络上四处载东西,有时碰到直接拷贝一个类似 http://193.100.100.56/TestWebSolution/WebApplication1/test.rar地址准备下载test.rar文件时,却被告知没有登录或者直接跳转到其他页面的情况,然后等登录后直接下载该文件。要实现上面情况…
中国人工智能市场破 50 亿!你还不了解 AI 云服务吗?
作者 | 马超责编 | 伍杏玲出品 | CSDN(ID:CSDNnews)从AI的发展趋势来看,最新的人工智能模型对于算力的要求往往较高,如谷歌的T5,其整个模型的参数数量达到了惊人的 110 亿,谷歌科学家更在T5的论…

Java中数据存储方式
2019独角兽企业重金招聘Python工程师标准>>> 1. 寄存器(register)。这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配。你…

Oracle与JCP执行委员会分享了他们的Java EE策略
Anil Gaur是Oracle集团负责Java EE和WebLogic Server的副总裁。他受邀在上一次的JCP执行委员会会议上发表了演讲,透露了有关Java EE未来发展的一些信息。他所传达的信息和Oracle之前的说法一致:企业编程正在发生变化,Oracle希望适应这种变化。…
5G:新基建的压舱石,如何为新基建按下“加速键”?
受访嘉宾 | 广和通 CEO 应凌鹏记者 | 邓晓娟2019 年,伴随着 5G 的浪潮,5G、AI、AIoT等新兴技术得到了全面的爆发,过去人们认为遥不可及的「高科技」,也逐渐走下“神坛”来进入大家的生活。5G 时代的万物互联,在本次疫情…

no argument specified with option /LIBPATH:错误的解决
作者:朱金灿来源:http://blog.csdn.net/clever101下午使用VS2005编译工程碰到一个链接错误:no argument specified with option "/LIBPATH:"。检查了链接库的文件路径,发现某个路径是非法的(即不存在该文件路…

Animation 模拟纸盒的爆破
用简单的Animation动作模拟爆破的瞬间,仔细的调整各种参数效果会更像 原理:用定义好的纸张从onTouch中心点向四面八方散开,散开过程中,使用不用的速度、大小、方向、旋转角度、透明度(这里纸张可以加上火焰,…
代码恒久远,GitHub 永流传
作者 | 唐小引题图 | GitHub来源 | CSDN(ID:CSDNnews)这两天,在 GitHub 上积极贡献代码的许多开发者都收到了「Arctic Code Vault Contributor」的荣誉勋章的通知,并非常兴奋地晒起了朋友圈。因为这标志着自己在 GitHu…