Perl一行代码+编辑文件前添加条件



我的配置文件中有这一行

     MY_PASSWORD=PASSWORD

我想通过perl一行修改,字PASSWORD为另一个字- MY_SECRET_PASS

所以我写了这个perl线性语法(这个perl在我的bash脚本中)

      perl -i -pe "s/PASSWORD/MY_SECRET_PASS/"   file

我还想在我的perl单行语法中添加条件,以检查PASSWORD后定义MY_PASSWORD=

所以只有当它成立时,perl才会将PASSWORD替换为MY_SECRET_PASS

如果没有,perl将不做任何操作而退出

的例子:

  more file

  MY_PASSWORD=PASSWORD

运行perl行文件后应该像这样:

      MY_PASSWORD=MY_SECRET_PASS

但是正如我所说的,perl行必须首先检查MY_PASSWORD=后面是否存在PASSWORD这个词,

将匹配MY_PASSWORD=PASSWORD,但只替换PASSWORD部分,

perl -i -pe 's/MY_PASSWORD=K PASSWORD/MY_SECRET_PASS/x' file

K是一个零宽度的正面查看后面,/x告诉regex忽略空白,这可能会提高regex的可读性。

更新:

用于非常旧的perl版本(5.8.x及更早版本)

perl -i -pe 's/(?<=MY_PASSWORD=)PASSWORD/MY_SECRET_PASS/' file

相关内容

最新更新