テキストファイルでプレースホルダのリストを置き換える方法は?

テキストファイルでプレースホルダのリストを置き換える方法は?

テキスト(構成)ファイルがありますが、残念ながらファイルを読み取るプログラムはいかなる種類の変数も受け入れません。そのため、設定ファイルをプログラムに渡す前に、プリプロセッサを使用して設定ファイルのプレースホルダセットを置き換えたいと思います。

必要に応じて変数の型を定義できます(例§SOME_DIR:)。変数が数個しかない場合は、次のものを使用できますsed

sed  -e "s*§SOME_DIR*$SOME_DIR*g"  my.conf | target_prog

ただし、変数のリストはかなり長く設定が簡単でなければなりません。したがって、変数をプロパティファイルに入れることを好みます。

SOME_DIR=...
OTHER_DIR=...
...

それから電話してください

some_replace_tool  my.properties  my.conf  | target_prog

「some_replace_tool」を探しています。どんなアイデアがありますか?

ベストアンサー1

出力構成ファイルを生成するためにシェル変数を拡張するスクリプトを作成することもできます。

以下はいくつかのヒントです。

  1. ここでは文字列(<<<)が展開されます。
  2. ".variables.conf"で変数をロードできます。
  3. env -i script.shクリーンな環境でスクリプトを実行します(追加変数なし)。

したがって、スクリプトは変数を取得し、拡張変数を使用してこの文字列を分類する新しい一時スクリプトを作成する必要があります。その後、最終出力を取得するには、一時的に生成されたスクリプトを実行する必要がありますenv -i

おすすめ記事