2017-06-18 123 views
0

我在學習bash腳本。作爲練習,我將獲得Google塗鴉的Alt文本和網址。perl bash腳本輸出輸入

我一直在使用perl解析出鏈接URL。我找到並輸出了替代文字和網址,但它也輸出了整個網頁。當我把它放在外殼中時它也會做同樣的事情。

curl -s google.com --Location | perl -pe 's|.*<img.*alt="(.*?)".*src="(.*?)".*>.*|\1 http://google.com\2|' 

我怎樣才能得到這個停止輸出的網頁。

請注意,我試圖分開這些,以確保它是perl做輸出的頁面,而不是捲曲的東西。這絕對是perl的一部分。如果有更好的方法來做到這一點,讓我知道。目標是輸出塗鴉的替代文字和網址。

回答

2

這是一個醜陋的方式做事情,但如果你從網頁裏的替代已經取得

perl -ne 'print if s/<img.*alt="(.*?)".*src="(.*?)".*>/$1 http://google.com$2/' 

打印每行可以工作,但它是清潔劑來做只是一個正則表達式匹配並使用否定字符類來代替非貪婪量詞

perl -ne 'print "$1 http://google.com$2\n" if /<img[^<>]+alt="([^"]+)"[^<>]+src="([^"]+)"/' 

但是這兩個依賴於(除其他事項外)全部開放<img>標籤出現在一行,這未必是真實的內容。他們還會在頁面中每<img>元素報告的內容,該元素同時具有altsrc屬性。