たとえば、このデータがあり、出力を取得したいと思います。
serNo: ASDFAFDAFD3223
profileType": "Asset Tag: profileValue": "12341233
corrected ouput as serNo: ASDFAFDAFD3223
Asset Tag: 12341233
_______________________________________________________________________
{
"assetTag": null,
"category": "Switch",
"children": [
{
"profileType": "Asset Tag",
"profileValue": "12341233"
}
],
"customerIpn": "234-234324-234",
"loc": "23",
"mfgPartNo": "ADSF-32C-ASDF",
"parentSn": "APLADFKJAOFHKNFDSOIH",
"partNo": "JPR-ADF-32C-ASDF",
"position": "23",
"serNo": "ASDFAFDAFD3223",
"skuNo": 4125056,
"subLoc": "1",
"usageType": null,
"vendor": "ASDFADSF NETWORKS (U.S.) INC"
}
私は次のことを試しました
grep -e Switch -A4 | awk -F":" '/"profileValue"/{print $2}'
"12341233"
"ASDFKHKSHDF980"
"ASDFDSF8689087"
"SADFASIYYI86"
"KHDSFKAYUSF86"
"87698234"
"97823407"
しかし、Serno、Asset Tagなどの予想データは取得できません。
答え1
JSONファイルを処理する最良の方法はjq
。
その後、ファイルをパイピングすると、jq '.serNo'
次のようになります。
"ASDFAFDAFD3223"
そしてjq '.children[].profileValue'
あなたに以下を提供します:
"12341233"
プレフィックスを追加したい場合は、両方のコマンドの出力を簡単に処理でき-r
ます"
。sed