mcpField
D
Dasel

Dasel

公式Agent-ready
github.comデータベース・データ8.1kdasel2 週間前に更新
リポジトリ公式サイト

Dasel について

Dasel は構造化データを扱うコマンドラインツールで、コマンドは dasel です。-f でファイルを指定してセレクターで値を読み取り、put で型を指定した値を書き込めます。入出力はパイプラインに組み込みやすいです。

主な機能

  1. 01dasel -f config.yml ".server.port" で項目を読み取る
  2. 02dasel put と -t int で型を指定して値を書き込む
  3. 03YAML や JSON などの設定ファイルに対応
  4. 04パイプラインに向いた入出力
  5. 05繰り返し実行できるデータ処理

活用シーン

  1. 01スクリプト内で設定ファイルのポート番号を取得
  2. 02config.json の port を 3000 に変更
  3. 03コーディングエージェントが形式をまたいで設定を一貫して編集

インストール

OS またはパッケージマネージャーを選び、コマンドをターミナルで実行します。

$
brew install dasel

インストール後にdasel --versionを実行して確認します。

コマンド例

よく使うコマンドを使う順に並べています。

01
dasel -f config.yml ".server.port"
02
dasel put -f config.json -t int ".port" 3000

詳細

Gitbook Go Report Card PkgGoDev Test Build codecov Mentioned in Awesome Go GitHub Downloads Homebrew Formula Downloads GitHub License GitHub tag (latest by date) Homebrew tag (latest by date)

Dasel のマスコット

Dasel

Dasel(Data-Selectの略)は、JSON、YAML、TOML、XML、CSV、KDL などのデータ構造をクエリ、変更、変換するためのコマンドラインツールおよびライブラリです。

一貫性のある強力な構文でデータをたどって更新できるため、開発者、DevOps、データ加工の作業に役立ちます。


機能

  • マルチフォーマット対応:JSON、YAML、TOML、XML、CSV、HCL、INI、KDL。
  • 統一されたクエリ構文:同じセレクターを使って、あらゆる形式のデータにアクセスできます。
  • クエリと検索:直感的な構文で値、リスト、構造を抽出できます。
  • インプレース変更:構造化ファイル内の値を直接更新、挿入、削除できます。
  • フォーマット変換:JSON → YAML、TOML → JSON など、データをシームレスに変換できます。
  • スクリプトに最適:シェルスクリプトやパイプラインに簡単に統合できます。
  • ライブラリ対応:Go プロジェクトにインポートして使用できます。

インストール

Homebrew(macOS/Linux)
brew install dasel
Go でインストール
go install github.com/tomwright/dasel/v3/cmd/dasel@master
ビルド済みバイナリ

Linux、macOS、Windows 向けのビルド済みバイナリは、リリースページから入手できます。

上記の方法が使えない場合

その他の方法については、インストールのドキュメントをご覧ください。


シェル補完

Dasel は Bash、Zsh、Fish、PowerShell のタブ補完に対応しています。シェル用の補完スクリプトを生成して読み込みます。

# Bash
source <(dasel completion bash)

# Zsh
source <(dasel completion zsh)

# Fish
dasel completion fish | source

# PowerShell
dasel completion powershell | Out-String | Invoke-Expression

恒久的なインストール方法については、シェル補完のドキュメントをご覧ください。

Man ページ

man ページを生成して表示します。

dasel man | man -l -

基本的な使い方

値の選択

デフォルトでは、Dasel は最後のセレクターを評価し、結果を出力します。

echo '{"foo": {"bar": "baz"}}' | dasel -i json 'foo.bar'
# Output: "baz"
値の変更

値をインラインで更新します。

echo '{"foo": {"bar": "baz"}}' | dasel -i json 'foo.bar = "bong"'
# Output: "bong"

変更後にドキュメント全体を出力するには、--root を使用します。

echo '{"foo": {"bar": "baz"}}' | dasel -i json --root 'foo.bar = "bong"'
# Output:
{
  "foo": {
    "bar": "bong"
  }
}

前の値に基づいて値を更新します。

echo '[1,2,3,4,5]' | dasel -i json --root 'each($this = $this*2)'
# Output:
[
    2,
    4,
    6,
    8,
    10
]
フォーマット変換
cat data.json | dasel -i json -o yaml
再帰的な走査(..)

一致するキーまたはインデックスを、すべてのネストされたオブジェクトと配列から検索します。

echo '{"foo": {"bar": "baz"}}' | dasel -i json '..bar'
# Output:
[
    "baz"
]

検索(search)

構造内のあらゆる場所から、条件に一致するすべての値を見つけます。

echo '{"foo": {"bar": "baz"}}' | dasel -i json 'search(bar == "baz")'
# Output:
[
    {
        "bar": "baz"
    }
]


ドキュメント

完全なドキュメントはdaseldocs.tomwright.meでご覧いただけます。


コントリビューション

コントリビューションを歓迎します。詳細はCONTRIBUTING.mdをご覧ください。


ライセンス

MIT ライセンスです。詳細はLICENSEをご覧ください。

スター数の推移

スター数の推移

コメント