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