2015-10-08 46 views
1

我正在開發一個項目,讓我瀏覽一些網址。現在,我有:在使用grep/sed之前將文件保存爲單獨的html文件

#!/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然後保存到一個新文件。

現在我很努力地把url保存到一個新的html文件中。幫幫我!

+1

您可以使用:'wget「$ 1」-O「output- $ 1.html」' – anubhava

+0

非常好!有沒有辦法顯示wget的過程?要在幕後做到這一點?我想它看起來非常光滑,像 ./navigator google.com 網址... 網址... 與 ./navigator google.com 解決google.com .... –

+1

'nv' =無詳細...,'-q' =安靜 –

回答

1

要爲每個URL一個新的文件,使用URL在輸出文件名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:按上述評論,在wget添加-q,使之完全安靜。

相關問題