名前が2つのファイルを解析しようとしていますMicrosoft Office
。更新するたびにファイルの内容が変更されることに注意してください。v64.hash
VersionDescriptor.xml
Microsoft Office
私の考えでは:
2行目のみ印刷してください
v64.hash
。4172FC3F5555BA53FDF7F830773F0696 16.0.9226.2126
attribute="value"
タグの各タグを次の場所に印刷します。<Version>
VersionDescriptor.xml
<?xml version="1.0" encoding="utf-8"?> <Version> <Available Build="16.0.9226.2126" I320Hash="0A735F1D1A6E7691006B0AC7A05F458A" I640Hash="2A462E7150280626AA23F8D362D048C3" I320Version="16.0.9226.2126" I640Version="16.0.9226.2126" /> <DeliveryMechanism FFNRoot="492350f6-3a01-4f97-b9c0-c7c6ddf67d60" /> <CreatedTimeUtc Value="05/11/2018 17:29" /> </Version>
ベストアンサー1
最初の質問に対して2番目の行を抽出しますv64.hash
。
$ sed -n '2p' v64.hash
16.0.9226.2126
または、入手してください最後ファイルライン:
$ tail -n 1 v64.hash
16.0.9226.2126
2番目の質問では、attribute=value
このXMLフラグメントからすべてのペアを抽出します。
$ xmlstarlet sel -t -m '/Version/*/@*' -v 'concat(name(), "=", .)' -nl VersionDescriptor.xml
Build=16.0.9226.2126
I320Hash=0A735F1D1A6E7691006B0AC7A05F458A
I640Hash=2A462E7150280626AA23F8D362D048C3
I320Version=16.0.9226.2126
I640Version=16.0.9226.2126
FFNRoot=492350f6-3a01-4f97-b9c0-c7c6ddf67d60
Value=05/11/2018 17:29
これは使用中ですXMLスターまずVersion
、XML文書内のノードのすべての子ノードのすべての属性を一致させてから、属性名と値の関連付けを作成します(=
中間値を使用)。