私は正規表現やsedなどにあまり詳しくなく、現時点でそれを理解するのが少し面倒なので、この行を抽出するにはどうすればよいですか:
<yweather:astronomy sunrise="6:50 am" sunset="7:06 pm"/>
さらにxml構造が必要かどうか教えてください。
承認された回答:
入力データ(XMLファイル)は構造化されているため、プレーンテキストとして扱い、正規表現をいじるよりも、その構造化データに対してクエリを使用する方が適切です。
xmllint --xpath
を使用できます xml入力でXPath式を評価するには:
$ xmllint --xpath 'string(rss/channel/*[local-name()="astronomy"]/@sunrise)' weather.xml
6:48 am
–ファイル内のさまざまな名前名を処理する必要があるため、これは少し複雑ですが、それでも機能します。
XPathの詳細については、仕様はhttp://www.w3.org/TR/xpath/
にあります。