Linux对一个3G的文本进行编码转换全过程
本过程中涉及到的Linux的命令有:split, iconv, cat
问题:有一个3G的文本a.txt,编码格式为gbk,现在需要对其进行转换成为utf-8。
难点:iconv的转换是在内存中进行的,因此3G大小的文本,无法进行直接转换。
思路:先利用split进行文件切分,然后对每一个字文件进行ivonv转换,最后进行cat合并。
具体操作如下:
1) ll -h a.txt 查看文件的大小,2.9G
2) wc -l a.txt 查看文件的行数,9千200万行
3) split -l 20000000 a.txt chunk 按照每个文件2千万行进行切割,共分成5个文件
4) 进行转换
iconv -f gbk -t utf-8 chunka > chunka_utf8 -c
iconv -f gbk -t utf-8 chunkb > chunkb_utf8 -c
iconv -f gbk -t utf-8 chunkc > chunkc_utf8 -c
iconv -f gbk -t utf-8 chunkd > chunkd_utf8 -c
iconv -f gbk -t utf-8 chunke > chunke_utf8 -c
5) rm chunka chunkb chunkc chunkd chunke 删除原文件
6) cat chunk* > a.txt_utf8 进行合并
至此,工作完成。
相关推荐
81214051 2020-04-25
84590091 2020-04-22
ITxiaobaibai 2020-03-23
84590091 2020-02-16
SDUTACM 2020-02-15
JakobHu 2019-11-09
butterflyfly00 2019-11-04
learningever 2020-09-19
81214051 2020-06-01
Jiajinjin 2009-11-04
zhangxiaocc 2019-10-24
心中要有一片海 2012-10-22
eastnow 2012-10-11
87437616 2011-05-09
secondid 2010-07-26
qiaosym 2010-07-07
shutFuckingup 2010-06-12
Charliewolf 2019-11-02
守正出奇 2011-07-20