Linux에서 콜론으로 구분된 키-값 쌍에서 값 부분 추출

Linux에서 콜론으로 구분된 키-값 쌍에서 값 부분 추출

arn:aws:sns:us-west-2:596873354795:demo명령을 사용하여 파일에서 다음 내용을 가져와야 합니다 sed. 순서는 무엇입니까?

샘플 파일:

{
    "TopicArn": "arn:aws:sns:us-west-2:596873354795:demo"
}

답변1

샘플 파일은 다음과 같은 구조화된 형식으로 되어 있습니다.JSON. sed이러한 파일 작업에 편리한 도구는 아닙니다. 대신 다음과 같은 JSON 형식 파서를 설치하세요.jq.

Debian 시리즈 Linux에 설치하려면:

sudo apt-get install jq

Red Hat 시리즈 Linux에 설치하려면:

sudo yum install jq

다른 배포판 및 플랫폼에 대해서는 확인하십시오.이 페이지.


그런 다음 다음을 실행합니다.

cat sample_file | jq -r '.["TopicArn"]'

얻으려면 :

arn:aws:sns:us-west-2:596873354795:demo

점검중인 사례jq 매뉴얼더 복잡한 파일을 검색하는 데 사용됩니다.

답변2

sed, grep, awk 등과 같은 줄 기반 도구에 익숙하고 단순히 키/값 쌍을 추출하려는 경우 를 jsonpipe사용하는 것이 더 나을 수 있습니다 jq.

/기본적으로 키는 탭으로 값과 구분된 분리된 경로 로 인쇄됩니다 .

예를 들어

$ json='{"TopicArn": "arn:aws:sns:us-west-2:596873354795:demo"}'

$ echo "$json" | jsonpipe 
/   {}
/TopicArn   "arn:aws:sns:us-west-2:596873354795:demo"

$ echo "$json" | jsonpipe | awk -F'\t' '$1 == "/TopicArn" {print $2}'
"arn:aws:sns:us-west-2:596873354795:demo"

데비안 패키지의 세부사항:

패키지: python-jsonpipe

Description-ko: JSON을 UNIX에 적합한 줄 기반 형식으로 변환

jsonpipe는 JSON 개체를 반복하고 grep, sed, awk, cut 및 diff와 같이 즐겨 사용하는 모든 UNIX 도구에서 처리할 수 있는 간단한 줄 기반 텍스트 형식을 생성합니다. 프로그래밍 언어에서도 유용할 수 있습니다. 사실 원래는 사용 중인 특정 구조에 테스트를 너무 밀접하게 연결하지 않고 JSON 출력에 대해 간단한 테스트 어설션을 작성하는 방법으로 고안되었습니다.

홈페이지:http://pypi.python.org/pypi/jsonpipe

관련 정보