XMLファイルで開くタグと閉じるタグの間の内容のみを表示する方法は?

XMLファイルで開くタグと閉じるタグの間の内容のみを表示する方法は?

grepなどを使用してXMLファイルから特定のタグを検索しながら、開始タグと終了タグの間の内容のみを表示するにはどうすればよいですか?私が探したい正確なタグは次のとおりです。

<max-diskusage>1024000000</max-diskusage>

しかし、私はラベルではなく1024000000の部分だけを得たいと思います。

これはバイト単位のストレージサイズです。可能であれば、これを1GBに変換するか、結果をGBに変換します。

ベストアンサー1

xmlstarletXML文書のタグインスタンスを解析し、max-diskusageその値を抽出し、GNUを使用してnumfmtバイト数をSI単位に変換するために使用されます。

xmlstarlet sel -t -v '//max-diskusage' -nl file | numfmt --to=si

質問の短い例ではfile文字列を返します1.1G--to=iec代わりに(既存の2の累乗を求めるには)を使用してください--to=si。これはを返します977M--to=si --round=downを得るために使用してください1.0G

おすすめ記事