10

以下のようなxmlがあります

<root>    
<FIToFICstmrDrctDbt>
            <GrpHdr>
                <MsgId>A</MsgId>
                <CreDtTm>2001-12-17T09:30:47</CreDtTm>
                <NbOfTxs>0</NbOfTxs>
                <TtlIntrBkSttlmAmt Ccy="EUR">0.0</TtlIntrBkSttlmAmt>
                <IntrBkSttlmDt>1967-08-13</IntrBkSttlmDt>
                <SttlmInf>
                    <SttlmMtd>CLRG</SttlmMtd>
                    <ClrSys>
                        <Prtry>xx</Prtry>
                    </ClrSys>
                </SttlmInf>
                <InstgAgt>
                    <FinInstnId>
                        <BIC>AAAAAAAAAAA</BIC>
                    </FinInstnId>
                </InstgAgt>
            </GrpHdr>
    </FIToFICstmrDrctDbt>
</root>

awk コマンドを使用して、各タグ値の値を個別の変数に抽出する必要があります。どうやってするの?

4

3 に答える 3

6

次の gawk コマンドは、レコード区切りの正規表現パターンを使用して XML タグを照合します。< で始まり、少なくとも 1 つの非 > が続き、> で終わるものはすべて、タグと見なされます。gawk は各 RS マッチを RT 変数に割り当てます。タグの間にあるものはすべて、gawk が $0 に割り当てるレコード テキストとして解析されます。

gawk 'BEGIN { RS="<[^>]+>" } { print RT, $0 }' myfile
于 2014-09-19T01:49:17.013 に答える