シェルスクリプトでsedを使用してプロパティファイルのプロパティを置き換えようとしています。以下のコマンドは完全に正常に動作しますsed regexで始まる行を無視する
sed "s!${KEY}=.*!${KEY}=${NEWVAL}!" infile > outfile
問題 - この男は、コメントにも一致する "KEY"を置き換えます。
例ファイル:
###########
#ws.clients=http://abc123.com
ws.clients=http://123.com
###########
スクリプト:
#!/bin/ksh
KEY="ws.clients"
NEWVAL="http://abcd.com"
sed "s!${KEY}=.*!${KEY}=${NEWVAL}!" infile > outfile
出力:
###########
#ws.clients=http://abcd.com
ws.clients=http://abcd.com
###########
私はいくつかの方法を試してみましたが、波平成功した "#" で始まる行をエスケープで.. 。提案?
ありがとう、私は重要なメモとしてそれを取る。 – sid