名前=値の形式で、Java プロパティ ファイルに変数を代入するスクリプトを作成しています。次のようなソース ファイル source.env があります。
TEST_ENV_1=test environment variable one
TEST_ENV_2=http://test.environment.com/one
#this is a comment with an equal sign=blah
TEST_ENV_3=/var/log/test/env/2.log
私のスクリプトは、ファイル dest.env 内のすべての TEST_ENV_1 を「テスト環境変数 1」などに置き換えます。
一度に 1 行ずつ処理しようとしていますが、sed や grep などのコマンドからの出力をループすると、行全体ではなく空白がトークン化されるため、問題が発生します。
$ for i in `sed '/^ *#/d;s/#.*//' source.env`; do
echo $i
done
TEST_ENV_1=test
environment
variable
one
TEST_ENV_2=http://test.environment.com/one
TEST_ENV_3=/var/log/test/env/2.log
それらを線として扱うにはどうすればよいですか?私ができるようにしたいのは、「=」記号で各行を分割し、source.env ファイルに基づいて一連の置換正規表現を使用して sed スクリプトを作成することです。