最近需要做乙個php網頁漢化的任務,找到了乙個老版本的漢化版,老版本的漢化所有的包含中文的php也沒的編碼格式都是utf-8,為了不乙個乙個的去找老版本的包含中文的php頁面,想要寫乙個shell 指令碼篩選出所有包含中文呢的php檔案。
指令碼的任務很簡單,寫起來也很簡單:遞迴遍歷目錄下的所有檔案,檢視檔案格式,如果是utf-8則篩選出來,不是utf-8則過濾掉。**如下所示
#/bin/bash
utf8_re="*utf-8*"
path=./
for file in `find $path`
do filetype=`file $file`
echo $filetype|grep -e $utf8_re>/dev/null 2>&1
if [ $? -eq 0 ];then
echo $filetype
fi
done
下面分析一下。
首先定義了兩個變數,乙個用來進行匹配檔案編碼格式,乙個用來指定路徑。
這裡用find命令來遞迴遍歷目錄下的所有檔案,一開始想使用ls -r命令,但是在shell編寫過程中發現,這個命令不是很好用,不容易取到子目下下的檔案,而且ls -r同樣會返
回目錄,還需要額外新增乙個if [-f $file]的判斷,而find命令在沒有規則的情況下直接返回所有檔案;
得到所有檔案後,用file命令得到檔案的編碼格式;
得到編碼格式後用正規表示式進行判斷,判斷檔案格式是否為utf-8。
Python中刪除特定目錄下的檔案
widnows中的指令碼不好用,所以投向python,用python協助工作,很好 import os,sys from stat import import shutil delpathname urelease def walktree top,callback for f in os.list...
遍歷指定目錄下的所有特定檔案
import os 遍歷資料夾 def walkfile file for root,dirs,files in os.walk file root 表示當前正在訪問的資料夾路徑 dirs 表示該資料夾下的子目錄名list files 表示該資料夾下的檔案list 遍歷檔案 for f in fil...
shell程式設計 遍歷目錄下的檔案
假定目錄text下有如下檔案 目錄 dir 1 dir 2 dir 3 檔案 text 1 text 2 遍歷目錄下所有的檔案是目錄還是檔案 if if型別 bin sh for file in do if test f file then echo file 是檔案 fiif test d fil...