1

次の行を含むファイルがあります

app.mail.host = 10.1.1.1
app.mail.debug = true
app.db.username = spate
app.db.password = 1#4FnL&@7!

正規表現を使用して実際のパスワードを変更し、セキュリティ上の目的で XXXXXXX に置き換えたいと考えています。

次の正規表現を試していますが、機能しません。

sed 's/app\.db\.password="[^"]\+/app\.db\.password="XXXXXXXX"/g' foo.txt 
4

2 に答える 2

3

Hbcdev が指摘したように、空白のために一致していません。これは「セキュリティ」コードのように見えるため (その場合、なぜそのパスワードをプレーンテキストで保存しているのですか?)、入力バイトごとに一致させるよりも、空白を許容する方がおそらく良いでしょう。何かのようなもの:

sed 's/app\.db\.password[ \t]*=.*/app.db.password="xxxxx"/

(未テスト) は、おそらくもう少し確実に動作するでしょう。引用符で始まらなくても、パスワード フィールドが削除されることに注意してください。

それでも、この種のハッキングをシェル スクリプトで行うのは危険に思えます。何を達成しようとしていますか?

于 2012-08-22T16:39:44.520 に答える
2

=式の記号の周りにスペースを残していませんsed。あなたがそれをしたら、私はそれがうまくいくと思います。

于 2012-08-22T16:28:12.937 に答える