這是有問題的腳本:bash腳本優化
for file in `ls products`
do
echo -n `cat products/$file \
| grep '<td>.*</td>' | grep -v 'img' | grep -v 'href' | grep -v 'input' \
| head -1 | sed -e 's/^ *<td>//g' -e 's/<.*//g'`
done
我要上50000+的文件,這將需要大約12小時,此腳本運行。
的算法如下:
- 查找表含有細胞(
<td>
)僅行不包含任何「IMG」,「href」屬性,或「輸入」的。 - 選擇其中的第一個,然後提取標籤之間的數據。
通常的bash文本過濾器(sed,grep,awk等)以及perl都可用。
如果您不打算執行這個操作不是一次或兩次以上,如果它需要1/2一天跑誰在乎呢?如果你花2個小時對其進行優化,只能獲得1小時的速度提升......這是否值得呢? – cdeszaq 2011-05-05 19:29:04
@cdeszaq:我還有其他四個類似的腳本,我相信一旦我看到這個優化的腳本,我就可以優化它。 – Marko 2011-05-05 19:34:47