HTMLから値を抽出する簡単な方法

HTMLから値を抽出する簡単な方法

値を含む非常に単純なHTMLファイルがあります。この場合、値は57です。

<eta version="1.0"><value uri="/user/var/48/10391/0/0/12528" strValue="57" unit="%" decPlaces="0" scaleFactor="10" advTextOffset="0">572</value></eta>

変数を抽出して作成する簡単なbashスクリプト方法は何ですか?途中でファイルにwgetを要求せずにファイルが保存されているファイルを開き、使用することなくwgetを直接使用する方法はありますか?

wget明確にすると、ファイルに保存してファイル値を確認する簡単な作業を実行できますか?それともwget明示的なファイルを保存せずにRAMのどこかで実行できるより改善された方法はありますか?

百万回も感謝し、ノーベルトに深く感謝します。

ベストアンサー1

grep例から値を抽出して変数に割り当てることができます。

$ x=$(wget -0 - 'http://foo/bar.html' | grep -Po '<value.*strValue="\K[[:digit:]]*')
$ echo $x
57

説明する:

  • $(): コマンドの置換
  • grep -P: grep と Perl 正規表現の有効化
  • grep -o:grepは一致するもののみを表示します。部分善意
  • \K:これまでの一致は出力に表示されません。
  • wget -O -:ダウンロードした文書を標準出力(ファイルではなく)として印刷します。

しかし、一般的なアプローチでは、専用のHTMLコードパーサーを使用することをお勧めします。

おすすめ記事