요즘 json 많이 사용하므로 jq를 사용하는게 굉장히 편리합니다.
설치
jq 설치는 간단합니다.
apt install jq
위 명령어만 입력해주면 됩니다.
사용방법
사용방법은 다음과 같습니다.
jq .key *.json
jq [옵션] [.추출할 키] [json파일]
이런식입니다.
근데 이게 좀 독특한게
키 다음 키 있을경우
보통 .키.키
마침표를 찍으면 잘 출력이 되는데
json에서 대괄호, 중괄호로 섞여 묶여 있는경우는 꼬일때도 있습니다.
예제
{
"entries": [
{
"Name": "cat",
"size": "100"
},
{
"Name": "dog",
"size": "200"
}
]
}
이런 test.json 파일이 있습니다.
여기서 Name의 value 값을 공백포함에서 출력하고 싶습니다.
jq -c .entries.Name test.json
하면 공백은 없어도 한줄로는 출력이 될줄 알았으나 안되더군요.
대괄호는 다른 옵션을 줘야하나 봅니다.
jq -r '.entries | map(.Name) | join(" ")' test.json
다음과 같이 하면
cat dog
이런식으로 출력되는것을 확인하실수 있습니다.
windows 에서 jq
그대로 치면 다음과 같은 에러가 발생합니다.
jq: error: syntax error, unexpected INVALID_CHARACTER, expecting $end (Windows cmd shell quoting issues?) at <top-level>, line 1:
" 쌍따옴표인 경우 앞에 백슬러쉬를 해줘야합니다.
jq -r '.entries | map(.Name) | join(\" \")' test.json
이런식으로 말이죠.
Simple jq filters not working in Windows shell, various quoting issues
I am trying really hard to get the Windows shell working with jq and failing miserably. I want this type of thing to work echo '["a","b","c"]' | .\Downloads\jq.exe -r '{ "data": map({ "{#SNAME}...
stackoverflow.com
Reference
jq 공식 메뉴얼
https://stedolan.github.io/jq/manual/
jq Manual (development version)
jq Manual (development version) For released versions, see jq 1.6, jq 1.5, jq 1.4 or jq 1.3. A jq program is a "filter": it takes an input, and produces an output. There are a lot of builtin filters for extracting a particular field of an object, or conver
stedolan.github.io
https://stackoverflow.com/questions/69198107/extract-values-from-json-using-jq
extract values from JSON using jq
I have a JSON object that looks like this: { "Accounts": [ { "Id": "1", "Name": "Joe", "Zip&qu...
stackoverflow.com
jq 옵션만 정리
Fig
The next-generation command line.
fig.io
커맨드라인 JSON 프로세서 jq : 기초 문법과 작동원리 | 44BITS
커맨드라인 JSON 프로세서 jq : 기초 문법과 작동원리
jq는 커맨드 라인 JSON 프로세서입니다. JSON 데이터를 입력받아 데이터를 필터링하거나 변형합니다. jq의 기본적인 문법과 작동 원리를 소개합니다.
www.44bits.io
'LINUX' 카테고리의 다른 글
[UBUNTU]nginx 설치(tar, 소스코드, make) 및 실행 (0) | 2022.11.09 |
---|---|
jq 관련 했던거 (0) | 2022.10.14 |
ubuntu sftp 비밀번호 접속 하기 에러:Permission denied (publickey,gssapi-keyex,gssapi-with-mic). (0) | 2022.10.12 |
linux[ubuntu] group에 유저 추가, 삭제 조회 하기 (0) | 2022.10.11 |
wsl에서 계정비밀번호 incorrect (0) | 2022.10.05 |
댓글