프로그래밍 언어/HTML,CSS,JS

쉘 스크립트에서 JSON을 예쁘게 출력하는 방법

Rateye 2021. 6. 2. 10:58
728x90
반응형
질문 : 쉘 스크립트에서 JSON을 어떻게 예쁘게 인쇄 할 수 있습니까?

사람이 읽을 수있는 형식으로 JSON 형식을 지정하는 (Unix) 셸 스크립트가 있습니까?

기본적으로 다음을 변환하고 싶습니다.

{ "foo": "lorem", "bar": "ipsum" } 

... 다음과 같이 :

{     "foo": "lorem",     "bar": "ipsum" } 
답변

Python 2.6 이상으로 다음을 수행 할 수 있습니다.

echo '{"foo": "lorem", "bar": "ipsum"}' | python -m json.tool 

또는 JSON이 파일에있는 경우 다음을 수행 할 수 있습니다.

python -m json.tool my_json.json 

JSON이 API와 같은 인터넷 소스에서 가져온 경우 다음을 사용할 수 있습니다.

curl http://my_url/ | python -m json.tool 

이 모든 경우의 편의를 위해 별칭을 만들 수 있습니다.

alias prettyjson='python -m json.tool' 

좀 더 타이핑하여 더 편리하게 준비하려면 :

prettyjson_s() {     echo "$1" | python -m json.tool }  prettyjson_f() {     python -m json.tool "$1" }  prettyjson_w() {     curl "$1" | python -m json.tool } 

위의 모든 경우에 대해. .bashrc 넣을 수 있으며 쉘에서 매번 사용할 수 있습니다. prettyjson_s '{"foo": "lorem", "bar": "ipsum"}' 과 같이 호출합니다.

@pnd가 아래 주석에서 지적했듯이 Python 3.5 이상에서는 JSON 개체가 더 이상 기본적으로 정렬되지 않습니다. 정렬하려면 --sort-keys 플래그를 추가합니다. 즉 ... | python -m json.tool --sort-keys .

출처 : https://stackoverflow.com/questions/352098/how-can-i-pretty-print-json-in-a-shell-script
728x90
반응형