这是有问题的脚本: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