2017-12-24 8 views
-3

私はHTMLファイルに変数の値を出力しようとしています ファイルはsomething.htmlと呼ばれ、nbLineValue変数の中に数字を表示する必要があります。この場合は77linuxシェルのHTML変数から値を出力する

<span class="nbLineLabel"></span><span class="nbLineValue">77</span> 

どのようなアイデアですか?

編集:私は、次のコード

正規表現を使用して
grep -oP '<span class="nbLineLabel"></span><span class="nbLineValue">\K[[:digit:]]*' something.html 
+1

を持つすべての要素を選択し、[MCVE] [編集]による(https://stackoverflow.com/posts/47964222/edit)あなたのポストを提供します。あなたの説明は、あなたが求めていることを明確にするのに十分で明確ではありません。 – hnefatl

+0

内部HTMLを 'nbLineValue'クラスを持つ要素から取り出したいのですか?あるいは、 'span'要素からだけ、または' simple text 'を持つ要素からのみです。 – hnefatl

+0

私は、HTMLに必要なものは、77の番号の値です。彼は各ファイルを変更します –

答えて

0

の問題を解決するために管理は、XML/HTML内のデータを解析するための悪い選択である - this question/answerを参照してください。

ただし、htmlutilsを使用することができます - DebianUbuntu、およびArchに、パッケージがhtml-xml-utilsです。これにはアプリケーションhxselectが付属しています。これは、CSSセレクタを使用してコマンドラインでHTML解析を実行できます。ドキュメントページから:

hxselect [ -i ] [ -c ] [ -l language ] [ -s separator ] selectors

hxselectは、整形式のXML文書を読み取り、すべての要素を出力し、その試合の引数として指定されているCSSセレクタの1を属性。あなたのケースでは

、あなたは次のようにコマンドを使用することができます。

  • -iを::マッチ大文字と小文字を区別せずに、次のように読み

    cat something.html | hxselect -i -c -s '\n' .nbLineValue 
    

    ここで使用されるオプション。これは要素タグがどのような場合でも可能なHTMLに適しています。

  • -c:要素を囲むタグではなく、各要素の内容(本文)のみを表示します。これにより、周囲のすべてではなく、77が得られます。
  • -s '\n':簡単に解析できるように、一致する各要素の後に1つの改行を出力します。
  • .nbLineValue:クラスnbLineValue
+0

それは私に以下の出力を与えます: "入力が整形式ではない(正規化しようとしていますか?)" –

+0

答えで示したファイルの内容だけを含むファイルで、上記、私は '77'を得る。あなたのセットアップとあなたの質問には何が違いますか? – hnefatl

+0

そのHTMLの中に私が投稿する単一行だけでなく、もっと多くのコードがあります。そのコードだけでは、ファイル全体が動作しません。/ –

関連する問題