2012-08-04 91 views
-1

我有一個文件,其中包含搜索後得到的google頁面。我用在bash中操縱字符串

w3m -no-cookie $search > google 

使頁面

之後,我需要得到包含在該頁面中的所有站點,所以基本上所有以「WWW」開始的字符串,並用「/」

結束

我想:

grep -Fw "www" google | awk -F "/" '{ print $1";" }' 

,但它給了我一切,是上線之前,WWW

我該如何刪除?

我應該使用sed嗎?

謝謝!

+0

注意'w3m'不給你完整的URL,字符串'www'不一定會發現所有網址。您也不知道谷歌的搜索輸出可能隨着時間而改變。 – 2012-08-04 17:29:02

+1

http://stackoverflow.com/questions/1881237/easiest-way-to-extract-the-urls-from-an-html-page-using-sed-or-awk-only建議使用'lynx -dump -listonly'。適用於我。 – 2012-08-04 17:33:45

+1

這個問題並不是真正關於bash中的字符串操作,它更多的是關於使用gnu coreutils的字符串操作 – richo 2012-08-04 18:03:38

回答

3

假設所有的網站開始www是有點不可思議,但在這裏它是:

您的問題是grep的將返回整條生產線。隨着-o它只會返回匹配的部分:

grep -wo "www.*" google | awk -F "/" '{ print $1";" }' 

或者乾脆:

grep -wo "www[^/]*" google 
+0

謝謝,這就像一個魅力! – Epilogue 2012-08-04 17:21:05