반응형
jq 명령어
jq는 커맨드 라인에서 JSON 데이터를 파싱하고 조작하는 유용한 도구입니다. 이 도구를 사용하면 JSON 형식의 데이터를 쉽게 쿼리하고 필요한 정보를 추출하거나 수정할 수 있습니다.
jq 설치
- CentOS
yum install -y epel-release
yum install -y jq
- Ubuntu
sudo apt update
sudo apt install jq
- jq 버전
jq --version
$ jq --version
jq-1.6
jq 명령어의 사용 예제
1. JSON 데이터 파싱하기
jq를 사용하여 JSON 데이터를 파싱하고 보기 쉬운 형태로 출력할 수 있습니다.
echo '{"name": "John", "age": 30}' | jq .
이 명령어는 다음과 같이 JSON 데이터를 예쁘게 포맷하여 출력합니다.
{
"name": "John",
"age": 30
}
2. 필드 추출하기
jq를 사용하여 JSON 객체의 특정 필드를 추출할 수 있습니다.
echo '{"name": "Alice", "age": 25, "city": "New York"}' | jq '.name'
결과는 "Alice"가 됩니다.
3. 필터링과 맵핑
jq를 사용하여 배열을 필터링하고 매핑할 수 있습니다.
echo '[{"name": "Bob", "age": 35}, {"name": "Eve", "age": 29}, {"name": "Charlie", "age": 42}]' | jq '.[] | select(.age > 30) | .name'
이 명령어는 나이가 30보다 큰 사람들의 이름을 추출합니다. 결과는 다음과 같습니다.
"Bob"
"Charlie"
728x90
4. JSON 데이터 수정하기
jq를 사용하여 JSON 데이터를 수정할 수도 있습니다.
echo '{"name": "Mary", "age": 28}' | jq '.age = 29'
이 명령어는 age 필드의 값을 29로 수정합니다.
{
"name": "Mary",
"age": 29
}
5. JSON 데이터 생성하기
jq를 사용하여 새로운 JSON 데이터를 생성할 수 있습니다.
jq -n '{name: "David", age: 24}'
이 명령어는 새로운 JSON 객체를 생성합니다.
{
"name": "David",
"age": 24
}
jq는 다양한 기능과 옵션을 제공하므로 JSON 데이터를 처리하고 조작하는데 유용한 강력한 도구입니다. 필요한 경우 jq의 공식 문서나 온라인 자습서를 참고하여 더 많은 기능과 사용 방법을 학습할 수 있습니다.
jq를 사용하여 json을 한 줄로 변환하는 방법
file.txt 파일
$ cat file.txt
{"ID":"web","Service":"web","Tags":["django"],"Meta":{},"Port":80,"Address":"","Weights":{"Passing":1,"Warning":1},"EnableTagOverride":false,"ContentHash":"318c41a7ce882f20","Datacenter":"vm-dc1"}
cat file.txt | jq .
cat file.txt | jq .
{
"ID": "web",
"Service": "web",
"Tags": [
"django"
],
"Meta": {},
"Port": 80,
"Address": "",
"Weights": {
"Passing": 1,
"Warning": 1
},
"EnableTagOverride": false,
"ContentHash": "318c41a7ce882f20",
"Datacenter": "vm-dc1"
}
--
cat file.txt | jq . > file.json
$ cat file.json
{
"ID": "web",
"Service": "web",
"Tags": [
"django"
],
"Meta": {},
"Port": 80,
"Address": "",
"Weights": {
"Passing": 1,
"Warning": 1
},
"EnableTagOverride": false,
"ContentHash": "318c41a7ce882f20",
"Datacenter": "vm-dc1"
}
cat file.txt | jq -c
cat file.txt | jq -c
{"ID":"web","Service":"web","Tags":["django"],"Meta":{},"Port":80,"Address":"","Weights":{"Passing":1,"Warning":1},"EnableTagOverride":false,"ContentHash":"318c41a7ce882f20","Datacenter":"vm-dc1"}
cat file.txt | jq -c > file.jsonl
$ cat file.jsonl
{"ID":"web","Service":"web","Tags":["django"],"Meta":{},"Port":80,"Address":"","Weights":{"Passing":1,"Warning":1},"EnableTagOverride":false,"ContentHash":"318c41a7ce882f20","Datacenter":"vm-dc1"}
728x90
반응형
'리눅스' 카테고리의 다른 글
[리눅스] ping 명령어 (0) | 2020.10.13 |
---|---|
NGINX에서 POST 데이터를 액세스 로그에 기록하는 방법 (0) | 2020.10.06 |
쿠버네티스 클러스터에서 Helm을 설치하는 방법 (0) | 2020.10.06 |
[Kubernetes] kubernetes 애플리케이션 배포 -3 (0) | 2020.10.06 |
socat 명령어(proxy) (0) | 2020.10.06 |