2014-02-18 56 views
5

我需要從http://en.wikipedia.org/wiki/Meme下載所有頁面鏈接,並使用一個命令將它們保存到文件中。wget grep sed提取鏈接並將它們保存到文件

第一次使用命令行,所以我不確定要使用的確切命令,標誌等。我只有一個大概的想法,並且必須搜索href的含義。

wget http://en.wikipedia.org/wiki/Meme -O links.txt | grep 'href=".*"' | sed -e 's/^.*href=".*".*$/\1/' 

該文件中鏈接的輸出不需要使用任何特定的格式。

+0

只考慮使用'links -dump'或'lynx -dump'。 – kojiro

+0

@ cajole0110如果將文本保存到文件中,您不能(通常)傳輸文本。這就是爲什麼寶馬的任何一個命令都能正常工作,而不是你的。 – jpaugh

+0

+1以前做好研究。 – jpaugh

回答

4

使用GNU的grep:

grep -Po '(?<=href=")[^"]*' links.txt 

或wget的

wget http://en.wikipedia.org/wiki/Meme -q -O - |grep -Po '(?<=href=")[^"]*' 
+0

您可能還需要添加'-q'標誌,以防止打印與實際輸出交錯的進度條(進度條打印到stderr,因此它不會干擾,因此看起來很時髦)。 – Carpetsmoker

1

你可以使用wget的蜘蛛模式。舉個例子來看這個答案。

wget spider

0
wget http://en.wikipedia.org/wiki/Meme -O links.txt | sed -n 's/.*href="\([^"]*\)".*/\1/p' 

但只需要每行1個HREF,如果有超過1個,其他的都將丟失(與原來的線)。你也忘了在你的原始sed優先模式中有一個組(\( - >\)),所以\1不參考

相關問題