在使用grep / sed之前将文件保存为单独的html文件

时间:2015-10-08 16:36:34

标签: bash curl sed grep wget

我正在开展一个项目,让我可以浏览一些网址。现在我有:

#!/bin/bash
for file in $1
do
wget $1 >> output.html
cat output.html | grep -o '<a .*href=.*>' | 
sed -e 's/<a /\n<a /g' |
sed -e 's/<a .*href=['"'"'"]//' -e 's/["'"'"'].*$//' -e '/^$/ d' |
grep 'http'
done

我希望用户能够按如下方式运行脚本:

./navigator google.com

将url源保存到一个新的html文件中,然后运行我的grep / seds,然后保存到一个新文件。

现在我正在努力将网址保存到新的html文件中。救命啊!

1 个答案:

答案 0 :(得分:1)

要为每个网址创建新文件,请在wget -O选项的输出文件名中使用网址:

#!/bin/bash

for url; do
   out="output-$url.html"
   wget -q "$url" -O "$out"

   grep -o '<a .*href=.*>' "$out" | 
     sed -e 's/<a /\n<a /g' |
     sed -e 's/<a .*href=['"'"'"]//' -e 's/["'"'"'].*$//' -e '/^$/ d' |
     grep 'http'
done

PS:根据上述评论,在-q中添加wget以使其完全安静。