JQ 중성관과 병치의 차이점은 무엇입니까?

JQ 중성관과 병치의 차이점은 무엇입니까?

내 프로그램은 작업 목록이 포함된 필드가 있는 개체 인 를 반환 JSON합니다 . 각 작업에는 다음 과 같은 필드가 포함됩니다.stdoutoperationsid

{
    "operations": [
        {
            "id": "694ef895-793f4631-41103e8-8ab59e66",

나는 그것에서 ID 목록을 얻으려고 노력하고 있습니다 jq.

내가 글을 쓰고 있다면

jq '.operations | .[] | .id'

내가 글을 쓰면 효과가 있다

jq '.operations | .[].id'

그것도 작동합니다.

즉, 병치는 여기와 같습니다 |.

하지만 내가 쓴다면

jq '.operations.[].id'

메시지와 함께 실패합니다

jq: 오류: 구문 오류, 예상치 못한 '[', FORMAT 또는 QQSTRING_START 필요(Unix 쉘 인용 문제?), 줄 1: .Operations.[].id jq: 1 컴파일 오류

이유와 해결 방법은 무엇입니까?

답변1

.foo.bar합계 만 비교하는 한 |매뉴얼 페이지의 "기본 필터"에 명시된 대로 차이가 없습니다.

형식의 필터는 .foo.bar와 동일합니다 .foo|.bar.

예, 귀하의 .operations[].id경우에는 그것이 필요합니다.

관련 정보