Fish Shell:
YAML を操作する

どのようにして:

Fish ShellにはYAMLをパーシングするための組み込みサポートはありませんが、yq(軽量でポータブルなコマンドラインYAMLプロセッサ)といったサードパーティツールを利用することでYAMLデータを扱うことができます。

yqのインストール(まだインストールされていない場合):

sudo apt-get install yq

YAMLファイルから値を読み取る: 次の内容を持つYAMLファイルconfig.yamlがあるとします:

database:
  host: localhost
  port: 3306

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

set host (yq e '.database.host' config.yaml)
echo $host

サンプル出力:

localhost

YAMLファイル内の値を更新する: port5432に更新するには、次を使用します:

yq e '.database.port = 5432' -i config.yaml

更新を確認する:

yq e '.database.port' config.yaml

サンプル出力:

5432

新しいYAMLファイルを書き込む: 事前定義された内容で新しいnew_config.yamlを作成するには:

echo "webserver:
  host: '127.0.0.1'
  port: 8080" | yq e -P - > new_config.yaml

この操作はyqを使用して、文字列を新しいYAMLファイルに処理し、きれいに印刷(-Pフラグ)します。

複雑な構造をパーシングする: より複雑なYAMLファイルを扱い、ネストされた配列やオブジェクトを取得する必要がある場合、次を実行できます:

echo "servers:
  - name: server1
    ip: 192.168.1.101
  - name: server2
    ip: 192.168.1.102" > servers.yaml

yq e '.servers[].name' servers.yaml

サンプル出力:

server1
server2

yqを使用して、Fish ShellはYAMLドキュメントを通して効率的にナビゲートし、さまざまな自動化や設定タスクのためにそれらを操作することを簡単にします。