Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 정보처리기사실기 기출문제
- kotlin querydsl
- 정보처리기사 실기 기출문제
- CKA 기출문제
- Pinpoint
- IntelliJ
- AI
- APM
- mysql 튜닝
- MySQL
- Java
- 기록으로 실력을 쌓자
- CloudWatch
- Linux
- 코틀린 코루틴의 정석
- 공부
- kotlin coroutine
- aws
- 티스토리챌린지
- PETERICA
- CKA
- Kubernetes
- Spring
- kotlin
- Elasticsearch
- kotlin spring
- AWS EKS
- 오블완
- 정보처리기사 실기
- minikube
Archives
- Today
- Total
피터의 개발이야기
[shell] JSON 깔끔히 볼 수 있는 jq 명령어 본문
반응형
ㅁ 개요
ㅇ linux 서버에서 JSON 데이터를 볼 때가 많이 있다. 직렬화된 json을 보기는 쉽지 않다.
ㅇ 이를 해결하기 위한 방법으로 jq명령어를 사용하면 JSON을 이쁘게 볼 수 있다.
ㅁ 설치
ㅇ 맥의 경우
brew install jq
ㅁ 사용법
ㅇ JSON string 파이프라인으로 재처리 하면 이쁜 JSON을 볼 수 있다.
$ echo '{"foo": "bar"}' | jq ✔ 5238 23:20:52
{
"foo": "bar"
}
$ echo '{"foo": "bar"}' | jq '.foo' ✔ 5239 23:20:59
"bar"
ㅁ 실사용 예제
[ec2-user@PRD-PETERICA-BASTION ilovefran]$ cat mongoFind.sh
#!/bin/sh
kubectl exec -it mongodb -- mongo peter --host mongodb --authenticationDatabase admin -u peter -p erica --eval 'db.PETER_INFO_'$1'.find({"key":"'$2'"})' | grep key | awk '{print "{",substr($0, index($0, "key")-1,10000)}' | jq
ㅇ 시스템에서 요청의 히스토리 파악을 위해 요청 정보에 대해서 history를 mongoDB에 남기고 있다.
ㅇ 자주보는 데이터가 아닌 관계로 MongoDB를 pod로 생성하여 AWS 볼륨을 마운트하여 사용하고 있다.
[ec2-user@PRD-PETERICA-BASTION ilovefran]$ sh mongoFind.sh 2022051110 PetericaTEst
{
"key": "PetericaTEst",
"id": "PT1408125",
"ymd": "20220511",
"reg_dt": "20220511105421",
"body": {
"description": "설명입니다."
},
"copyAllowed": true,
"_class": "kr.co.peterica.gw.model.db.PetericaInfo"
}
ㅇ 고객문의 시 확인 차원에서 가끔 요청 데이터를 확인할 때에 key만 입력하면
이쁘게 정제된 JSON데이터로 요청 정보를 확인 할 수 있다.
ㅁ 특정 JSON Object에서 데이터 필터하기
# 샘플 JSON
$ echo '{ "msgkey":"test", "text":"hello"}'
{ "msgkey":"test", "text":"hello"}
# jq
$ echo '{ "msgkey":"test", "text":"hello"}' | jq
{
"msgkey": "test",
"text": "hello"
}
# 데이터 필터
$ echo '{ "msgkey":"test", "text":"hello"}' | jq -c '[.msgkey, .text]'
["test","hello"]
ㅁ 배열 조회
# docker network에 연결된 컨테이너 배열 확인
docker network inspect my-net | jq '.[0].Containers'
ㅁ 함께보면 좋은 사이트
www.44bits.io/ko/post/cli_json_processor_jq_basic_syntax
반응형
'Linux > Shell Script' 카테고리의 다른 글
디렉토리별 용량 정렬, du 크기별 정렬 방법 (0) | 2024.01.16 |
---|---|
[Shell] Shell - 파일 읽어 처리하기 (0) | 2022.09.17 |
[shell] log 파일 압축하고 6개월지난 파일 지우기 (0) | 2022.05.14 |
[Shell] 배열 loop (0) | 2021.01.27 |
[shell] Spring BlueGreen 배포를 위한 Shell Script(with nginx) (0) | 2021.01.17 |
Comments