常常下載檔案解開後卻發現裡面卻是簡體中文(utf8)
如果要轉成繁體中文(utf8)似乎沒有較好的指令可以用
用convmv會因為都是utf8而不能轉
所以自己寫了一個簡單的script來作這件事
註解都寫在裡面了
不喜歡就自己改吧!!
程式碼在這裡
程式碼在這裡
!/bin/bash####################Author:Max Wu ##Date:2011-Mar-10 ####################
#將$1從簡體中文(utf8)轉成繁體中文(utf8)dir=`echo "$1" | iconv -f utf8 -t gb2312 | iconv -f gb2312 -t big5 | iconv -f big5 -t utf8`#更改目錄名稱mv "$1" "$dir"cd "$dir"#計算行數line=`ls|wc | awk '{print $1}'`#把檔名轉成繁中後讀入var1中for ((x=1; x<=$line; x=x+1))dovar1[$x]=`ls|iconv -f utf8 -t gb2312| iconv -f gb2312 -t big5 | iconv -f big5 -t utf8|head -n "$x"|sed -n "$x"p`done#把目前簡中的檔名讀入var2中for ((y=1; y<=$line; y=y+1))dovar2[$y]=`ls|awk '{print $1}'|head -n "$y"|sed -n "$y"p`done#把var1和var2中的陣列讀出來並且一個一個更改檔案名稱為繁中的編碼for ((z=1; z<=$line; z=z+1))domv ${var2[$z]} ${var1[$z]} > /dev/null 2>&1donecd ..
#以下是將檔案轉換成big5格式並且再做分割壓縮#不需要就不用看了
#將檔案做個備份cp -r "$dir" "$dir-2"#把utf8格式的檔名轉換為big5並且將過程寫入到t.txtconvmv -r -f utf8 -t big5 --notest "$dir" > t.txt#取出t.txt最後一行,並取出第四個欄位的值,然後去掉./的字元
big5name=`tail -n 1 t.txt | awk 'BEGIN{FS="\""}{print $4}'|sed 's/.\///g'`#把被改成big5編碼的檔案分割壓縮成20mb的rar檔案rar a -v20480 "$dir.rar" "$big5name"rm -r "$big5name"rm t.txtmv "$dir-2" "$dir"
用法
script.sh "簡體中文目錄名"
script.sh "簡體中文目錄名"
沒有留言 :
張貼留言