grepなどを使用してXMLファイルから特定のタグを検索しながら、開始タグと終了タグの間の内容のみを表示するにはどうすればよいですか?私が探したい正確なタグは次のとおりです。
<max-diskusage>1024000000</max-diskusage>
しかし、私はラベルではなく1024000000の部分だけを得たいと思います。
これはバイト単位のストレージサイズです。可能であれば、これを1GBに変換するか、結果をGBに変換します。
ベストアンサー1
xmlstarlet
XML文書のタグインスタンスを解析し、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
。