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 출력에 대해 간단한 테스트 어설션을 작성하는 방법으로 고안되었습니다.