YAMLみたいな設定ファイルから要素を簡易取り出し

2015-09-09

YAMLみたいな行ごとに項目が並ぶ設定ファイルからsedを使ってある要素を簡単に取り出す方法:

例えば以下のような設定ファイルがあったとして

SomeSettings:
name: hoge
passwd: fuga

次のようにする:

sed -En 's/ *name: (.*)/\1/g p'  < test.yaml
  • sed -E で拡張正規表現(括弧をエスケープしなくてよい)
  • sed -n でデフォルトの出力をしないようにし、最後の p でマッチした行だけ表示
  • \1 で後方参照