Bash에서 특정 행과 특정 열을 선택하는 방법은 무엇입니까? [폐쇄]

Bash에서 특정 행과 특정 열을 선택하는 방법은 무엇입니까? [폐쇄]

예를 들어 이 데이터가 있고 출력을 얻고 싶습니다.

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

관련 정보