05/19/2012 筆記

話說 DR 今天在使用 Foremost 從某顆被格式化的硬碟救資料時,儘管它判讀 Microsoft Office 檔案格式的成功率已經算不小了,但仍然有不少檔案是以 *.ole 的副檔名被抓出來,因此要檢查出這些檔案的可用程度與確切的檔案類型就變得比較麻煩,如果檔案少一點還可以考慮一個個用應用軟體「硬開」,但當有幾千個檔案要檢查時,這樣做可是會死人的……

 

於是 DR 寫了一支 shell script,將所有 *.ole 檔案用 file 指令去檢查檔案類型,然後重新命名成適當的副檔名:

 

#!/bin/bash

total=0
doc=0
xls=0
ppt=0

for f in *.ole

do
       total=$(($total +1))

       cmd=$(file $f|grep "PowerPoint")
       cmd2=$(file $f|grep "Excel")
       cmd3=$(file $f|grep "Word")
        
       if [ "$cmd" != "" ]; then
           mv "$f" "$(basename "$f" .ole).ppt"
           ppt=$(($ppt +1))
       elif [ "$cmd2" != "" ]; then
           mv "$f" "$(basename "$f" .ole).xls"
           xls=$(($xls +1))
       elif [ "$cmd3" != "" ]; then
           mv "$f" "$(basename "$f" .ole).doc"
           doc=$(($doc +1))
       fi
done

echo "OLE files: $total"
echo "Identified DOC files: $doc"
echo "Identified XLS files: $xls"
echo "Identified PPT files: $ppt"
echo "Unidentified OLE files: $(($total-($doc+$xls+$ppt)))"

 

分類: