Welcome 微信登录

首页 / 操作系统 / Linux / Linux对一个3G的文本进行编码转换全过程

本过程中涉及到的Linux的命令有:split, iconv, cat问题:有一个3G的文本a.txt,编码格式为gbk,现在需要对其进行转换成为utf-8。难点:iconv的转换是在内存中进行的,因此3G大小的文本,无法进行直接转换。思路:先利用split进行文件切分,然后对每一个字文件进行ivonv转换,最后进行cat合并。具体操作如下:1) ll -h a.txt 查看文件的大小,2.9G2) 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 进行合并至此,工作完成。