GNU/Linux >> Linux の 問題 >  >> Linux

プロパティ ファイル内の環境変数の置き換え

sed 's/$HOSTNAME/myhost/g;s/$unconfigured//g' yourfile.txt > another_file.txt

更新:

質問の更新に基づくと、これは適切な解決策ではありません。

更新 2 :

これは、関連する質問への回答に基づいています。未定義の変数を削除するためにハッキングしました (私は perl に慣れていません)。

perl -p -e 's/\$\{([^}]+)\}/defined $ENV{$1} ? $ENV{$1} : $&/eg; s/\$\{([^}]+)\}//eg' yourfile.txt

どの入力テキスト ファイルでも機能するはずですが、${...} を使用して変数を定義する必要があります。 文字列の一致を簡素化する形式。

(eval の悪さに関する暴言は、読者を混乱させないように別の投稿に移動しました )


これが envsubst です

echo 'Hello $USER'
Hello $USER
echo 'Hello $USER' | envsubst
Hello malvineous

ただし、おそらく次のように使用することになるでしょう:

envsubst < input.txt > output.txt

envsubst GNU gettext の一部のようです。


Linux
  1. 環境変数の確認

  2. .txt ファイルに書き込みますか?

  3. 複雑なテキスト ファイルでシェル変数を置き換える方法

  1. 一時的な環境を設定する ($PATH)

  2. 多くの環境変数の設定を解除する方法

  3. プロセスの環境変数を読み取る方法

  1. ファイル内の環境変数を実際の値に置き換えますか?

  2. Bashスクリプトの変数用のスペース?

  3. * in * / etc / environment?で環境変数を参照する