`yq`は実行されていますが、`jq`が実行されています。

`yq`は実行されていますが、`jq`が実行されています。

悩みます。

Debian パッケージをインストールしました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

Debianyqでは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パーサーには2つの主な実装がありますyq

  1. マイクパラyq、Goで書かれたユーティリティプログラムです。 Mikeはyq、XMLやその他の一般的な構造化文書形式を解析する機能も内蔵しています。この実装はyqLinuxシステムでは一般的ですが、Debianは明らかに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現在よく知られているからです。単純な式の場合、2つのYAMLパーサーを入れ替えて使用できますが、より複雑な式とコマンドラインオプションはほとんど互換性がありません。

関連情報