如何使用shell工具从HTML文件中提取项目ID?

时间:2011-08-06 17:48:17

标签: bash shell sh

我有一个带有目录名称的文本文件(每行一个),我需要打开并遍历该列表。一次取一个名称,下载相应的HTML页面并解压缩页面上的“item_id”。

项目ID在HTML中显示如下:?item_id=55963573">

这是我目前的情况。

#!/bin/sh

for productID in (catIDs.txt) #I know this part is not correct
do
    wget -q -U Mozilla "http://www.example.com/$productID/" -O - \
     | tr '"' '\n' | grep "^item_id" | cut -d ' ' -f 4 >> itemIDs.txt
    sleep 15
done

3 个答案:

答案 0 :(得分:1)

如果文件很小,请使用:

for productID in `cat catIDs.txt`

答案 1 :(得分:1)

cat catIDs.txt | while read productID;
do
  wget -q -U Mozilla "http://www.domain.com/$productID/" -O - \
  | tr '"' '\n' | grep "^item_id" | cut -d ' ' -f 4 >> itemIDs.txt
  sleep 15
done

while read productID;
do
  wget -q -U Mozilla "http://www.domain.com/$productID/" -O - \
  | tr '"' '\n' | grep "^item_id" | cut -d ' ' -f 4 >> itemIDs.txt
  sleep 15
done < catIDs.txt

答案 2 :(得分:1)

这应该有效:

#!/bin/sh

while read productID; do
    wget -q -U Mozilla "http://www.example.com/$productID/" -O - |
    sed -n -r 's/.*\?item_id=([0-9]+)"\>.*/\1/p'
done <catIDs.txt >itemIDs.txt