2009年6月24日 星期三

可以刪除一堆相同文字的script


#!/bin/sh
checkCode="E486:"
for x in `ls | gawk -F. '{print $1}'`
do
echo -n "Run...."
y=$x.html
runCode="`ex $y +/要刪的文字行-c q | gawk '/E486/{ print $1 }'`"
while [ "$checkCode" != "$runCode" ]
do
runCode="`ex $y +g/要刪的文字行/d -c wq | gawk '/E486/{ print $1 }'`"
echo -n "."
done
echo "Fin"
done
rm *.html~



說明:利用ex行編輯器來作修改文字動作
這是把所有在目錄下的檔案開起並將有所要刪的文字該行刪除,
首先找所要的文字:+g/要刪的文字行,前頭的g表是群組
然後就是動作設定:/d <--刪除
第二個動作就是存檔:-c wq
接下來利用串流把錯誤訊息過濾出來,這邊我用gawk
其錯誤字面段為 E486
gawk '/E486/{ print $1 }
然後比對是否發生錯誤,最後就完成檔案的修改