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のドキュメントを参照してください。