パラメータを一致させ、「=」区切り記号の後の値を置き換える方法

パラメータを一致させ、「=」区切り記号の後の値を置き換える方法

ファイルの値を変更するperl onelinerコマンドは簡単です。

perl  -i  's/oldval/newval/g' file.txt

ただし、特定のパラメータの値を変更するには(値は「=」区切り文字の後にあります)、Perlの1行構文は何ですか?

はい

私たちは一致したいVIP_IP文字列を入力し、「=」区切り文字の後の値を別の値に置き換えます。192.17.200.100 (Perl 1行構文を使用)

more file.txt

VIP_IP=172.17.200.15

if [[ $VIP_IP = $HOST_IP ]]
then

.
.
.

期待されるパフォーマンス

more file.txt

VIP_IP=192.17.200.100

if [[ $VIP_IP = $HOST_IP ]]
then

.
.
.

答え1

正規表現にキーを含めます。

書き方を正確に知っていれば、肯定的な振り返りアサーションを使用することができます。

perl -pi -e 's/(?<=^\$VIP_IP=).*/192.17.200.100/' your_file

それ以外の場合は、次を使用して代替テキストに一致するキーを含める必要があります$1

perl -pi -e 's/(^\$VIP_IP\s*=).*/$1192.17.200.100/' your_file

関連情報