src
我正在尝试从网页的 html 中过滤与属性相关的链接。
我曾经curl
获取 html 和下面的sed
命令来过滤 url 链接。
curl -s http://www.example.com/ | sed -n '/src/,/jpg/p'
我的想法是过滤掉以扩展名开头src
和结尾的行.jpg
。但是它不起作用,它会打印出整个 html。我该怎么做?
答案1
尝试以下命令:
curl -s http://www.example.com | grep -Po '(?<=src=")[^"]*(jpg|png)'
解释:
从man grep
:
-o, --only-matching
Print only the matched (non-empty) parts of a matching line,
with each such part on a separate output line.
-P, --perl-regexp
Interpret PATTERN as a Perl compatible regular expression (PCRE)
后向(?<=src=)
断言在字符串的当前位置,前面是字符src=
。然后我们寻找除了"
以 jpg 或 png 结尾的所有内容。