2010-09-19 65 views
2

我得看起来像一个文件:正则表达式在bash(下载输出形式的正则表达式)

<a href="some-adress">some-txt</a> 
<a href="some-adress">some-txt</a> 
<a href="some-adress">some-txt</a> 
... 

我需要下载的是“一些,住址”中的所有文件,我该怎么办,只有使用庆典?

+0

你是什么意思 “只打击”? Bash不能这么做(很容易)。您将需要某些实用程序,如下面答案中的那些实用程序。 – 2010-09-19 22:08:27

回答

3

为什么不使用wget?它已经有一个特点:

wget -i --force-html yourfile.html 
+1

+1:不能比这更简单。 – codaddict 2010-09-19 17:35:34

0
cut -f 2 -d '"' file-with-addresses.txt 

cut包括在所有的POSIX的炮弹。该命令将使用"作为分隔符来分割该行,并返回第二个“字段”。使用wget Adam Rosenfield的方法进行下载很好。

cut -f 2 -d '"' file-with-addresses.txt | xargs wget 
2

这里做到这一点使用sedxargs组合的一种方式,并wget

sed -n 's/.*<a href="\([^"]*\)">.*/\1/p' input-file | xargs wget 
+0

情侣调整:您可能需要将[^“] *更改为[^”] \ +以确保该模式至少出现一次,并且您可能希望使用xargs -n 1,因此xargs将针对每个地址调用一次。 – 2010-09-19 17:35:09