如何使用 grep 或 sed 過濾掉 html 中的連結?

如何使用 grep 或 sed 過濾掉 html 中的連結?

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 結尾之外的所有內容。

相關內容