2 つの文字列の間で発生するすべてを印刷する方法を見つけようとしています。問題は、これらの文字列のペアが 1 行に複数回出現することです。したがって、ペアの各セット内の各フィールドを印刷できる必要があります。
api.txt
複数の顧客とそれぞれのデバイス インベントリをリストしたファイルがあります。次のようになります。
Customer [customerId=12000, customerName=Acme, Inc.]
DeviceDetail [baseProductId=router-100, cardDetail=[CardDetail [baseCardId=router-100NIC1, cardDescription=Router 100 NIC, cardSerial=100NIC1], CardDetail [baseCardId=router-100NIC2, cardDescription=Router 100 NIC, cardSerial=100NIC2]], deviceSerial=100PRIMARY, deviceDescription=Router 100 Base Model]
DeviceDetail [baseProductId=router-2500, cardDetail=[CardDetail [baseCardId=router-2500NIC1, cardDescription=Router 2500 NIC, cardSerial=2500NIC1], CardDetail [baseCardId=router-2500NIC2, cardDescription=Router 2500 NIC, cardSerial=2500NIC2]], deviceSerial=2500PRIMARY, deviceDescription=Router 2500 Base Model]
Customer [customerId=24000, customerName=Anvil LLC]
DeviceDetail [baseProductId=router-5000, cardDetail=[CardDetail [baseCardId=router-5000NIC1, cardDescription=Router 5000 NIC, cardSerial=5000NIC1], CardDetail [baseCardId=router-500NIC2, cardDescription=Router 5000 NIC, cardSerial=5000NIC2]], deviceSerial=5000PRIMARY, deviceDescription=Router 5000 Base Model]
DeviceDetail [baseProductId=router-7500, cardDetail=null, deviceSerial=7500PRIMARY, DeviceDescription=Router 7500 Base Model, No NIC]
この出力は次のようになります。
"12000","Acme, Inc.","router-100","100PRIMARY","Router 100 Base Model","Router 100 NIC","100NIC1","Router 100 NIC","100NIC2"
"12000","Acme, Inc.","router-2500","2500Primary","Router 2500 Base Model","Router 2500 NIC","2500NIC1","Router 2500 NIC","2500NIC2"
"24000","Anvil LLC","router-5000","5000PRIMARY","Router 5000 Base Model,"Router 5000 NIC","5000NIC1","Router 5000 NIC","5000NIC2"
router-7500
デバイスには子デバイスが接続されていないため( ) 、最後の DeviceDetail ( ) が省略されていることに注意してくださいcardDetail=null
。
awk
フィールド区切り文字を設定し、それらの間にあるすべてのもの=
を取得する方法を理解して,
います (つまり、各フィールド値は等号とコンマの間にあります)。ただし、複数の場合に探している結果を取得する方法がわかりませんデータのインスタンスは、CardDetail
各行に不明な回数表示されるか、まったく表示されない場合もあります。
考慮すべきことは、 の各インスタンスがと閉じ括弧 ( ) のCard Detail
間にキャプチャされることです。これにより、各行の の各インスタンスをキャプチャするのに役立つ可能性がありますが、確かではありません。Card Detail
]
Card Detail
私も結婚していませんawk
。sed
またはその他の解析プログラムを使用しても同様に機能します。基本的に、何が一番うまくいくか。
提供されたヘルプに事前に感謝します!