이 json 파일이 있습니다.
"[{\"id\":188457,\"title\":\"Painted Dragon Tea Mug with Lid\",\"slug\":\"painted-dragon-tea-mug-with-lid\",\"image\":\"https:\\\/\\\/thievemedia.imgix.net\\\/2018\\\/09\\\/painted-dragon-tea-mug-with-lid-featured-1.jpg\",\"full_image_url\":\"https:\\\/\\\/s3.amazonaws.com\\\/thieve-media\\\/wp-content\\\/uploads\\\/2018\\\/09\\\/painted-dragon-tea-mug-with-lid-featured-1.jpg\",\"large_image_url\":\"https:\\\/\\\/s3.amazonaws.com\\\/thieve-media\\\/wp-content\\\/uploads\\\/2018\\\/09\\\/painted-dragon-tea-mug-with-lid-featured-1.jpg\",\"medium_image_url\":\"https:\\\/\\\/s3.amazonaws.com\\\/thieve-media\\\/wp-content\\\/uploads\\\/2018\\\/09\\\/painted-dragon-tea-mug-with-lid-featured-1.jpg\",\"original_price\":\"19.78\",\"price\":\"13.65\",\"discount\":\"30.99\",\"rating\":\"4.7\",\"total_orders\":\"10\",\"promotion_url\":\"https:\\\/\\\/api.thieve.co\\\/view?id=MzI4NTk0Njg0MDE=\",\"product_like_count\":\"100\",\"product_user_likes\"}]
jq를 사용하여 제목만 추출하는 방법은 무엇입니까?
답변1
이 쿼리는 '.[] | {title}'
문서가 다음이라는 파일에 있다고 가정할 때 제목 요소만 제공합니다(그러나 예제 문서의 형식이 잘못된 것으로 나타남) data.json
.
$ jq '.[] | {title}' data.json
{
"title": "Painted Dragon Tea Mug with Lid"
}
쿼리의 첫 번째 부분은 '.[]'
최상위 배열의 모든 개체를 반환한 다음 연산자를 사용하여 이러한 개체를 두 번째 부분으로 보냅니다 |
. 쿼리의 두 번째 부분은 {title}
단순히 개체에서 "제목" 요소를 추출합니다.
결과를 JSON 개체로 래핑하지 않고 제목을 문자열로 사용하려면 대신 다음 명령을 사용하세요.
$ jq '.[] | .["title"]' data.json
"Painted Dragon Tea Mug with Lid"
이것jq
지도 시간쿼리 언어에 대한 좋은 개요를 제공합니다.
답변2
입력이 실제 JSON 문서를 인코딩하는 JSON 문자열이라고 가정하면 jq
이를 사용하여 문자열을 JSON으로 디코딩한 다음 title
최상위 배열의 각 요소에서 키 값을 추출할 수 있습니다.
jq -r 'fromjson[]|.title' file