简体   繁体   中英

wget grep sed to extract links and save them to a file

I need to download all page links from http://en.wikipedia.org/wiki/Meme and save them to a file all with one command.

First time using the commmand line so I'm unsure of the exact commands, flags, etc to use. I only have a general idea of what to do and had to search around for what href means.

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

The output of the links in the file does not need to be in any specific format.

Using gnu grep:

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

or with wget

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

You could use wget 's spider mode. See this SO answer for an example.

wget spider

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

but this only take 1 href per line, if there is more than 1, other are lost (same as your original line). You also forget to have a group ( \\( -> \\) ) in your orginal sed first pattern so \\1 refere to nothing

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM