src
Web ページの 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=)
、文字列の現在の位置で、先行するのは文字であると主張します。次に、 jpg または png で終わるものsrc=
を除くすべてを検索します。"