Bash:
YAML を操作する

使い方:

Bashで直接YAMLを扱うには、BashにはYAMLの解析をサポートする機能が組み込まれていないため、ちょっとした工夫が必要です。しかし、yqのような外部ツール(軽量でポータブルなコマンドラインYAMLプロセッサ)を使用して、効率的にYAMLファイルとやり取りすることができます。いくつかの一般的な操作を見てみましょう:

yqのインストール:

例に入る前に、yqがインストールされていることを確認してください。たいていの場合、パッケージマネージャーからインストールできます。例えば、Ubuntuの場合:

sudo apt-get install yq

または、GitHubリポジトリから直接ダウンロードすることもできます。

値の読み取り:

config.yamlという名前のファイルがあり、以下の内容が含まれているとします:

database:
  host: localhost
  port: 5432
user:
  name: admin
  password: secret

データベースのホストを読み取るには、次のようにyqを使用します:

yq e '.database.host' config.yaml

サンプル出力:

localhost

値の更新:

config.yamlのユーザー名を更新するには、-i(インプレース)オプションを付けてyq evalコマンドを使用します:

yq e '.user.name = "newadmin"' -i config.yaml

次で変更を確認します:

yq e '.user.name' config.yaml

サンプル出力:

newadmin

新しい要素の追加:

データベースセクションに、新たなフィールドtimeoutを追加するには:

yq e '.database.timeout = 30' -i config.yaml

ファイルの内容を確認すると、追加されていることが確認できます。

要素の削除:

ユーザーのパスワードを削除するには:

yq e 'del(.user.password)' -i config.yaml

この操作により、設定からパスワードフィールドが削除されます。

yqは強力なツールであり、YAMLをJSONに変換する、ファイルをマージする、さらに複雑な操作を行うなど、さらに多くの機能を持っています。さらに探求するためには、yqのドキュメントを参照してください。