1

パスワードやその他の機密データを含む大きな構成ファイルがあるとします。ファイルは将来変更される可能性があります。この種のデータをプレースホルダーに置き換えたいと思います。たとえば***、bash を使用して、機密情報を含まない現在の構成のバージョンを作成します。

ファイルの形式は次のとおりです。

user_foo=Foo
foo_pwd=12345
user_bar=Bar
bar_password_x=42
a.passwd=asdf

に変換する必要があります

user_foo=Foo
foo_pwd=***
user_bar=Bar
bar_password_x=***
a.passwd=***

代入者の左側に含まれる文字列のブラックリストを受け入れるスクリプト (たとえば、「pwd」、「password」、「passwd」) がおそらくそれを行う方法です。

残念ながら、私は bash の専門家ではありませんが、sed または awk に基づくエレガントなソリューションがあるかもしれません。

4

3 に答える 3

3

試す:

awk 'BEGIN{FS="="; OFS="="; } $1 ~ /pwd|password|passwd/ {$2="***"}1' inputfile

入力については、次を出力する必要があります。

user_foo="Foo"
foo_pwd=***
user_bar="Bar"
bar_password_x=***
a.passwd=***
于 2013-09-19T08:46:42.740 に答える
2

sed を使用します。

sed -r 's/((pwd|password|passwd)[^=]*=).*/\1***/' input > output
于 2013-09-19T08:47:49.310 に答える
1

使用するawk

awk -F= '$1~/pwd|password|passwd/ {$2="***"}1' OFS="="
user_foo=Foo
foo_pwd=***
user_bar=Bar
bar_password_x=***
a.passwd=***
于 2013-09-19T08:47:28.830 に答える