sed
を使用しないので、かなり簡単です。 、ただし適切なシェル ツールを使用します。まず、sample
を保持する必要がある場合 後で使用するために変数で、次のようなものが bash を使用して機能します部分文字列の置換 sample
を分離する テスト:/データベース: 行:
$ db=$(grep -A3 'test:' database.yml | tail -n1); db=${db//*database: /}; echo "$db"
sample
または、コマンド ラインにダンプできる短いソリューションの場合は、変数とコマンドの置換を削除し、cut
などのツールを使用します。 :
$ grep -A3 'test:' database.yml | tail -n1 | cut -c 13-
sample
または、awk
で 、単に:
$ grep -A3 'test:' database.yml | tail -n1 | awk '{ print $2}'
sample
コマンド置換内でさまざまな方法をすべて使用できます (つまり、var=$(stuff)
) sample
を格納する var
で 、どちらを使用するかは問題です。お分かりだと思います。
sed
より優れたツールがあります .あなたは最小限のシステムで行き詰まっているかもしれませんが、答えを探している他の人はおそらくそうではないでしょう.
yq の Python バージョンは、jq のように動作します:
$ pip3 install yq
$ yq -r .test.database database.yml
sample
shyaml も機能しますが、リダイレクトしかできないという奇妙な制限があります:
$ pip3 install shyaml
$ shyaml get-value test.database < database.yml
sample
perl
の場合 があり、YAML がインストールされています:
$ cpan YAML
$ perl -MYAML -le 'print YAML::LoadFile(shift)->{test}{database}' database.yml
sample
または、ruby
が必要な場合 :
$ ruby -r yaml -e 'puts YAML.load_file(ARGV[0])["test"]["database"]' database.yml
sample