2014年4月2日 星期三
2014年3月12日 星期三
簡繁互轉:批次更改資料夾及檔案名稱
Linux找不到我需要的簡轉繁批次更改資料夾及檔案名稱這種功能的程式,想說簡繁互轉有opencc能用,在來就是用zsh寫個shell script應該不會很難才是。
初步很簡單就寫好了,可是,我忽略了資料夾遇到了有多層目錄的結構,前面的名稱改了但讀進的資料不能跟著改不然會出錯。
帅哥/刚才/叫我吗 要修改成 帥哥/剛才/叫我嗎,修改順序為第一層 帅哥/帥哥,出現錯誤在第二層中他是讀到舊的 帅哥/刚才 ,但是 帅哥 已經變成繁體字的 帥哥,那麼接下來的結構都會出現錯誤。
今過幾天思考到底要怎麼處理,結果給我想到了,我將有層次目錄結構分讀取資料分兩段讀取轉換,我用 dh 保留路徑的頭,dt保留路徑的尾巴,遇到這情形到第二層目錄先將 dh 轉為 ch讓他讀到繁體的,最後整體會變成 ch/ct這樣搬移時就沒問題了。
以下是我的原始碼大家研究一下囉,請記得要裝opencc即zsh呀否則無法正確執行;程式會自動轉換當前資料夾內所有子資料夾及檔案,所以請先切換到要目地在執行哦。
opencc 我是用 -c zhs2zhtw_vp.ini 簡體轉繁體,大陸的朋友要繁體轉簡體的話要用 -c zhtw2zhcn_s.ini 哦。
將原始碼存檔之後給執行權限執行即可。
最後附上我實際轉換過程的log 有興趣的可以下載回去看一下。
初步很簡單就寫好了,可是,我忽略了資料夾遇到了有多層目錄的結構,前面的名稱改了但讀進的資料不能跟著改不然會出錯。
帅哥/刚才/叫我吗 要修改成 帥哥/剛才/叫我嗎,修改順序為第一層 帅哥/帥哥,出現錯誤在第二層中他是讀到舊的 帅哥/刚才 ,但是 帅哥 已經變成繁體字的 帥哥,那麼接下來的結構都會出現錯誤。
今過幾天思考到底要怎麼處理,結果給我想到了,我將有層次目錄結構分讀取資料分兩段讀取轉換,我用 dh 保留路徑的頭,dt保留路徑的尾巴,遇到這情形到第二層目錄先將 dh 轉為 ch讓他讀到繁體的,最後整體會變成 ch/ct這樣搬移時就沒問題了。
以下是我的原始碼大家研究一下囉,請記得要裝opencc即zsh呀否則無法正確執行;程式會自動轉換當前資料夾內所有子資料夾及檔案,所以請先切換到要目地在執行哦。
opencc 我是用 -c zhs2zhtw_vp.ini 簡體轉繁體,大陸的朋友要繁體轉簡體的話要用 -c zhtw2zhcn_s.ini 哦。
將原始碼存檔之後給執行權限執行即可。
#!/bin/zsh
test -e "conv.log" && rm "conv.log"
touch "conv.log"
for direct in **/*(/)
do
dh="$direct:h"
dt="$direct:t"
ch="$(echo "$dh"|opencc -c zhs2zhtw_vp.ini)"
ct="$(echo "$dt"|opencc -c zhs2zhtw_vp.ini)"
if [ "$dt" != "$ct" ]
then
if [ "$dh" != "." ]
then
echo "$dh/$dt" "$ch/$ct" >> "conv.log"
mv "$ch/$dt" "$ch/$ct"
else
echo "$dt" "$ct" >> "conv.log"
mv "$dt" "$ct"
fi
fi
done
for files in **/*(.)
do
convfile="$(echo "$files" | opencc -c zhs2zhtw_vp.ini)"
if [ "$files" != "$convfile" ]
then
echo "$files" "$convfile" >> "conv.log"
mv "$files" "$convfile"
fi
done
最後附上我實際轉換過程的log 有興趣的可以下載回去看一下。
Firefox.v26後有在用userChromeJS記得更新userChrome.js
忘了Firefox26、27開始,我的偏好設定內的分頁都固定在那無法調整,在網址列按☆號加入書籤按兩下不會彈出修改內容的小視窗,經過努力不懈我不會說我套件裝超多的情況下終於抓到是userChromeJS的問題。
但是userChromeJS好久以前就沒更新了,就在今天找其它的腳本發現只要將userChrome-26.js抓下替換userChrome.js以上的問題就解決了。
"userChrome-26.js,適合 FF26,在24下會讓 xul 的腳本沒法加載。"
https://github.com/ywzhaiqi/userChromeJS/blob/master/userChrome-26.js
如果你需要一些userChromeJS的腳本也可以到ywzhaiqi挖寶哦。
但是userChromeJS好久以前就沒更新了,就在今天找其它的腳本發現只要將userChrome-26.js抓下替換userChrome.js以上的問題就解決了。
"userChrome-26.js,適合 FF26,在24下會讓 xul 的腳本沒法加載。"
https://github.com/ywzhaiqi/userChromeJS/blob/master/userChrome-26.js
如果你需要一些userChromeJS的腳本也可以到ywzhaiqi挖寶哦。
訂閱:
文章 (Atom)