タグ間でのみ Grep

タグ間でのみ Grep

次のタグを含むhtmlタイプのファイルがあります。

<Currentnumber>0.3.5</Currentnumber>

変数の値をキャプチャする方法0.3.5ただこれ?

私はこの行を次のようにgrep'dしました:

grep -E "<Currentnumber>.*</Currentnumber>$" myfile

grep教育目的で回答に使用されたパラメータの説明も提供されている場合はありがとうございます。

行はいくつかの空白(またはタブ)で始まるため、次は機能しません。

grep -E "^<Currentnumber>.*</Currentnumber>$" myfile

ベストアンサー1

HTMLを解析するために正規表現を使用しないでください!これはstackexchangeのウェブサイトで最も一般的なエラーです。

XML/HTML パーサーを使用する方が良いです。またはサクソンリント私自身のプロジェクト

例:

xmllint --xpath '//Currentnumber/text()' file.html
xmlstarlet sel -t -v '//Currentnumber/text()' file.html
saxon-lint --xpath --html '//Currentnumber/text()' file.html

確認する:HTMLタグで正規表現を使用する

おすすめ記事