悩みます。
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
。
マイクパラ
yq
、Goで書かれたユーティリティプログラムです。 Mikeはyq
、XMLやその他の一般的な構造化文書形式を解析する機能も内蔵しています。この実装はyq
Linuxシステムでは一般的ですが、Debianは明らかにAndreyの実装を選択しましたyq
。
一般的なインストール手順:https://github.com/mikefarah/yq/#installアンドレイ・キースリューク
yq
jq
内部的には、YAMLをJSONに変換し、変換された入力によく知られたプロセッサを適用するPythonで書かれたユーティリティです。 Andreyは式構文を使用してXML()とTOML()を操作するyq
ためのいくつかの異なるツールもリリースしました。この実装は、Linuxではなくシステムで一般的です。一般的なインストール手順:xq
tomlq
jq
yq
https://kislyuk.github.io/yq/#installation
このコマンドyq -p=json
(JSON入力を読む、JSONはYAMLのサブセットであることに注意してください)は、yq -P
Mikeのを使用するのと同じ効果がありますyq
。 Andreyの場合(YAML出力生成)を使用してください。yq
yq -y
ここ数年、Mike'sはyq
式の構文をAndreyのように変更し始めました。yq
おそらく、式の構文がjq
現在よく知られているからです。単純な式の場合、2つのYAMLパーサーを入れ替えて使用できますが、より複雑な式とコマンドラインオプションはほとんど互換性がありません。