日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

linux 文件编码格式转换

發(fā)布時(shí)間:2025/3/17 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 文件编码格式转换 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??

如果你需要在Linux中操作windows下的文件,那么你可能會(huì)經(jīng)常遇到文件編碼轉(zhuǎn)換的問(wèn)題。Windows中默認(rèn)的文件格式是GBK(gb2312),而Linux一般都是UTF-8。下面介紹一下,在Linux中如何查看文件的編碼及如何進(jìn)行對(duì)文件進(jìn)行編碼轉(zhuǎn)換。

查看文件編碼

在Linux中查看文件編碼可以通過(guò)以下幾種方式:

1.在Vim中可以直接查看文件編碼

:set fileencoding

即可顯示文件編碼格式。

如果你只是想查看其它編碼格式的文件或者想解決用Vim查看文件亂碼的問(wèn)題,那么你可以在

~/.vimrc 文件中添加以下內(nèi)容:

set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936

這樣,就可以讓vim自動(dòng)識(shí)別文件編碼(可以自動(dòng)識(shí)別UTF-8或者GBK編碼的文件),其實(shí)就是依照f(shuō)ileencodings提供的編碼列表嘗試,如果沒(méi)有找到合適的編碼,就用latin-1(ASCII)編碼打開。

文件編碼轉(zhuǎn)換

1.在Vim中直接進(jìn)行轉(zhuǎn)換文件編碼,比如將一個(gè)文件轉(zhuǎn)換成utf-8格式

:set fileencoding=utf-8

2. iconv 轉(zhuǎn)換,iconv的命令格式如下:

iconv -f encoding -t encoding inputfile

比如將一個(gè)UTF-8 編碼的文件轉(zhuǎn)換成GBK編碼

iconv -f GBK -t UTF-8 file1 -o file2

Linux對(duì)一個(gè)3G的文本進(jìn)行編碼轉(zhuǎn)換全過(guò)程

本過(guò)程中涉及到的Linux的命令有:split, iconv, cat

問(wèn)題:有一個(gè)3G的文本a.txt,編碼格式為gbk,現(xiàn)在需要對(duì)其進(jìn)行轉(zhuǎn)換成為utf-8。

難點(diǎn):iconv的轉(zhuǎn)換是在內(nèi)存中進(jìn)行的,因此3G大小的文本,無(wú)法進(jìn)行直接轉(zhuǎn)換。

思路:先利用split進(jìn)行文件切分,然后對(duì)每一個(gè)字文件進(jìn)行ivonv轉(zhuǎn)換,最后進(jìn)行cat合并。

1) ll -h a.txt 查看文件的大小,2.9G

2) wc -l a.txt 查看文件的行數(shù),9千200萬(wàn)行

3) split -l 20000000 a.txt chunk 按照每個(gè)文件2千萬(wàn)行進(jìn)行切割,共分成5個(gè)文件

4) 進(jìn)行轉(zhuǎn)換

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 進(jìn)行合并

至此,工作完成

二、

批量文件編碼轉(zhuǎn)換

本操作有風(fēng)險(xiǎn),請(qǐng)注意操作前備份文件。

1.將原來(lái)所有編碼為gb2312的*.java文件轉(zhuǎn)換為編碼為utf-8的*.java.new文件

for i in `find . -name "*.java"`; do iconv -f gb2312 -t utf-8 $i -o $i.new; done

2.將*.java.new文件的.new擴(kuò)展名去除

find . -name "*.new" | sed 's/\(.*\).new$/mv "&" "\1"/' | sh

三、

linux下有許多方便的小工具來(lái)轉(zhuǎn)換編碼,

文本內(nèi)容轉(zhuǎn)換?? iconv

文件名轉(zhuǎn)換???? convmv

mp3標(biāo)簽轉(zhuǎn)換??? python-mutagen

四、

用法: iconv [選項(xiàng)...] [文件...]

轉(zhuǎn)換給定文件的編碼。

輸入/輸出格式規(guī)范:

-f, --from-code=名稱????? 原始文本編碼

-t, --to-code=名稱???????? 輸出編碼

信息:

-l, --list???????????????????? 列舉所有已知的字符集

輸出控制:

-c???????????????????????????? 從輸出中忽略無(wú)效的字符

-o, --output=FILE??? 輸出文件

-s, --silent?????????????? 關(guān)閉警告

--verbose??????????? 打印進(jìn)度信息

-?, --help???????????????? 給出該系統(tǒng)求助列表

--usage?????????????? 給出簡(jiǎn)要的用法信息

-V, --version??????????? 打印程序版本號(hào)

五、

find default -type d -exec mkdir -p utf/{} \;

find default -type f -exec iconv -f GBK -t UTF-8 {} -o utf/{} \;

這兩行命令將default目錄下的文件由GBK編碼轉(zhuǎn)換為UTF-8編碼,目錄結(jié)構(gòu)不變,轉(zhuǎn)碼后的文件保存在utf/default目錄下。

六、

Linux下文件名編碼批量轉(zhuǎn)換convmv

由于FC將字符編碼統(tǒng)一成了UTF8,原來(lái)在gb18030下建立的ext3分區(qū)中的文件和目錄,一掛載到FC上就顯示成亂碼。google遍整個(gè)互聯(lián)網(wǎng),說(shuō)對(duì)于目錄名和文件名,有一個(gè)叫convmv的軟件可以對(duì)其進(jìn)行自動(dòng)轉(zhuǎn)換。

今日下載了convmv,摸索了一套使用方法如下:

convmv -f code1 -t code2 -r

code1:分區(qū)原來(lái)使用的字符集編碼。支持gb2312、gbk、big5,不支持gb18030和big5-hkscs。

code2:預(yù)轉(zhuǎn)換到的字符集編碼。對(duì)于FC,這里填寫utf8

-r 參數(shù):轉(zhuǎn)換子目錄。

dir:要轉(zhuǎn)換的目錄,當(dāng)前目錄用./表示。

回車執(zhí)行,這個(gè)時(shí)候convmv會(huì)顯示執(zhí)行的結(jié)果,但不會(huì)真正對(duì)文件進(jìn)行修改。并提示使用--replace參數(shù)進(jìn)行修改。

七、

批量轉(zhuǎn)換文件的編碼

for i in `find ./ -name *.htm` ; do echo $i;iconv -f gb18030 -t utf8 $i -o /tmp/iconv.tmp;mv /tmp/iconv.tmp $i; done

find -name “*.htm“ \

-exec iconv -f gb2312 -t utf8 ‘{}‘ -o /tmp/iconv.tmp \; \

-exec mv /tmp/iconv.tmp ‘{}‘ \;


轉(zhuǎn)載于:https://my.oschina.net/pwd/blog/363342

總結(jié)

以上是生活随笔為你收集整理的linux 文件编码格式转换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。