2

curl を使用してサイトから html を取得していますが、'standards.xml?revision=' と '&' の間にある特定の文字列が必要です。これを行うためにsedを使用していますが、正規表現を正しく取得できないようで、助けが必要でした。

curl website.com | sed -r 's|.*standards\.xml\?revision=([0-9]+).*|\1|'

私が得ている出力は完全な html です。

4

3 に答える 3

2

使用できますgrep -oP(PCRE オプション):

grep -oP 'standards\.xml\?revision=\K[0-9]+'

\K一致したテキストをリセットするため、後の部分のみ[0-9]+が返されます。

于 2013-10-30T17:16:54.110 に答える
1
curl website.com | sed -n '/xml/ {s|.*standards\.xml\?revision=([^&]+).*|\1|p;q;}'

以前の sed から [0-9]+ は、数値が発生した場合にのみ、おそらく [^&]+ の方が適切です。' と | を使用すると非常に便利です。\ の問題を避けるために、私はそれを選びます :-)

于 2013-10-30T17:46:15.913 に答える