예를 들어 이 데이터가 있고 출력을 얻고 싶습니다.
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