`yq`가 실행되고 있지만 `jq`가 실행되고 있습니다.

`yq`가 실행되고 있지만 `jq`가 실행되고 있습니다.

고민됩니다.

데비안 패키지를 설치했습니다yq

하지만 호출하면 jq실행됩니다.

root@rescue ~ # echo '{"key": "value"}' | yq -p=json
jq: Unknown option -p=json
Use jq --help for help with command-line options,
or see the jq manpage, or online docs  at https://stedolan.github.io/jq
root@rescue ~ # cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

답변1

데비안 yq에서는 jq.

나는 이 yq도구를 기대하고 있습니다:https://github.com/mikefarah/yq

root@rescue ~ # apt show yq
Package: yq
Version: 3.1.0-3
Priority: optional
Section: utils
Maintainer: Debian Python Team <[email protected]>
Installed-Size: 73,7 kB
Depends: jq, python3-argcomplete, python3-toml, python3-xmltodict, python3-yaml, python3:any
Homepage: https://github.com/kislyuk/yq
Download-Size: 19,2 kB
APT-Manual-Installed: yes
APT-Sources: http://mirror.hetzner.com/debian/packages bookworm/main amd64 Packages
Description: Command-line YAML processor - jq wrapper for YAML documents

Mike Farah의 yq 설치 지침은 다음과 같습니다.https://github.com/mikefarah/yq/?tab=readme-ov-file#install

답변2

YAML 파서에는 두 가지 주요 구현이 있습니다 yq.

  1. 마이크 파라yq, Go로 작성된 유틸리티 프로그램입니다. Mike는 yq또한 XML 및 기타 일반적인 구조화된 문서 형식을 구문 분석하는 기능을 내장하고 있습니다. 이 구현은 yqLinux 시스템에서 일반적이지만 데비안은 분명히 Andrey의 구현을 선택했습니다 yq.
    일반 설치 지침:https://github.com/mikefarah/yq/#install

  2. 안드레이 키슬류크yqjq내부적으로 YAML을 JSON으로 변환한 다음 변환된 입력에 잘 알려진 프로세서를 적용하는 Python으로 작성된 유틸리티입니다 . Andrey는 표현식 구문을 사용하여 XML( ) 및 TOML( ) yq작업을 위한 몇 가지 다른 도구도 출시했습니다 . 이 구현은 Linux가 아닌 시스템에서 일반적입니다. 일반 설치 지침:xqtomlqjqyq
    https://kislyuk.github.io/yq/#installation

이 명령 yq -p=json(JSON 입력 읽기, JSON은 YAML의 하위 집합임에 유의)은 yq -PMike의 를 사용하는 것과 동일한 효과를 갖습니다 yq. Andrey의 경우 (YAML 출력 생성)을 사용합니다 .yqyq -y

지난 몇 년 동안 Mike's는 yq표현식 구문을 Andrey의 와 비슷하게 변경하기 시작했습니다. yq아마도 표현식 구문이 jq현재 너무 잘 알려져 있기 때문일 것입니다. 간단한 표현식의 경우 두 개의 YAML 파서를 서로 바꿔서 사용할 수 있지만 더 복잡한 표현식과 명령줄 옵션에서는 대부분 호환되지 않습니다.

관련 정보