我有一个带有目录名称的文本文件(每行一个),我需要打开并遍历该列表。一次取一个名称,下载相应的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
答案 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