내 테스트 json 파일은 다음과 같습니다.
{
"server":"xxx",
"cert":"line1\nline2",
"security/path": "/var/log/systems.log"
}
key 로 필터링하고 싶지만 security/path
다음 명령 중 어느 것도 작동하지 않습니다.
jq .security/path test.json
jq: error: path/0 is not defined at <top-level>, line 1:
.security/path
jq: 1 compile error
jq '.security/path' test.json
동일한 결과가 나타납니다.
답변1
~에서기본 필터:
객체 식별자 인덱스:
...
키에 특수 문자가 포함되어 있거나 숫자로 시작하는 경우 다음과 같이 큰따옴표로 묶어야 합니다.
."foo$"
그렇지 않으면.["foo$"]
....
그래서,
$ jq -r '."security/path"' test.json
/var/log/systems.log
답변2
출력이 다음과 같을 경우,
"annotations": {
"eks.amazonaws.com/role-arn": "arn:aws:iam::907636088649:role/stg-eks_helm-chart",
"meta.helm.sh/release-name": "helm-chart-base",
"meta.helm.sh/release-namespace": "stg-helm-chart"
}
다음은 작동합니다.
jq -r '.metadata.annotations["eks.amazonaws.com/role-arn"]'
다음과 같은 출력이 생성됩니다.
arn:aws:iam::907636088649:role/stg-eks_helm-chart