2012-08-04 55 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