티스토리 뷰
jq command installation
stedolan.github.io/jq/download/
Examples1
우선 다음과 같은 json data가 있다고 가정하자.
jacob@jacob-laptop:~$ cat data.txt
{
"pools": [
{
"name": "volume1",
"id": 1,
"size_bytes": 100
},
{
"name": "volume2",
"id": 2,
"size_bytes": 200
},
{
"name": "volume3",
"id": 3,
"size_bytes": 300
}
],
"total": 600
}
pools내에 각 pool내 name, id를 pool에 맞춰서 출력해보도록 하자.
jacob@jacob-laptop:~$ cat data.txt | jq -r '.pools[] | .name, .id'
volume1
1
volume2
2
volume3
3
아래와 같이 string을 + operation을 사용하여 합칠수도 있다.
jacob@jacob-laptop:~$ cat data.txt | jq -r '.pools[] | (.name + "\t" + .id)'
volume1 1
volume2 2
volume3 3
다음과 같은 연산을 통한 결과를 출력할수도 있다.
jacob@jacob-laptop:~$ cat data.txt | jq -r '.pools[].size_bytes / .total'
0.16666666666666666
0.3333333333333333
0.5
연산을 하려는 iteration 외부에 있는 value를 참조하여 연산을 수행하기 위해서는 다음과 같이 변수화 시켜 진행할 수 있다.
jacob@jacob-laptop:~$ cat data.txt | jq -r '.total as $t | .pools[] | .name, .size_bytes / ($t)'
volume1
0.16666666666666666
volume2
0.3333333333333333
volume3
0.5
참고로 다음과 같이 두개의 다른 위치의 value를 가져와 출력시킬수도 있다.
[root@master001 net.d]# kubectl get po -n argocd -o json | jq -r '.items[] | .metadata.name, .status.podIP'
argocd-application-controller-0
10.233.120.133
Example2
다음과 같은 json을
[jenkins@slave ~]$ cat test.json
[
{
"ID": "c314e8f3-fddb-447c-91f5-0080f8c5e05e",
"Name": "testvm",
"Status": "ACTIVE",
"Networks": "private-net1=20.20.20.125; private-net2=30.30.30.33; private-net-ext=10.10.10.209; selfservice=192.168.1.111",
"Image": "",
"Flavor": "m1.small"
},
{
"ID": "ff9b6758-2e73-4a2a-bc21-ab1058ea54de",
"Name": "SlaveVM",
"Status": "ACTIVE",
"Networks": "selfservice=192.168.1.112, 172.16.100.100",
"Image": "",
"Flavor": "m1.medium"
}
]
다음 명령을 통해 특정 column의 값만을 추출할수도 있다.
[jenkins@slave ~]$ cat test.json | jq --raw-output '.[] | select(.Name|test("testvm")) | .Name, .Networks'
testvm
private-net1=20.20.20.125; private-net2=30.30.30.33; private-net-ext=10.10.10.209; selfservice=192.168.1.154
'programming > etc' 카테고리의 다른 글
groovy script (0) | 2020.09.22 |
---|---|
language level (0) | 2013.07.05 |
core dump analysis by gdb (0) | 2013.06.24 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- hashicorp boundary
- minikube
- macvlan
- openstacksdk
- K3S
- azure policy
- GateKeeper
- ceph
- boundary ssh
- crashloopbackoff
- Jenkinsfile
- wsl2
- vmware openstack
- ansible
- nginx-ingress
- metallb
- mattermost
- Terraform
- kubernetes install
- DevSecOps
- kubernetes
- minio
- aquasecurity
- jenkins
- Helm Chart
- kata container
- openstack backup
- socket
- OpenStack
- open policy agent
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함