请告知如何删除导出PASSORD =
后面的第一个单词by perl one liner code(在linux机器上)
例如,我在我的文件中有这一行
export PASSORD=HG&@VFQ1
运行perl语法后的预期结果应该是没有密码
export PASSORD=
perl必须与该行完全匹配 - > “export PASSORD =”否则密码不会从文件中删除。
示例:在以下情况下不得删除密码:
export PASSORD =HG&@VFQ1
exportPASSORD=HG&@VFQ1
export_PASSORD=HG&@VFQ1
#export_PASSORD=HG&@VFQ1
我创建了基本的perl one liner语法来删除文件中的任何单词,但是只有在匹配行后才能成功添加删除单词的功能 - > export PASSORD =
perl -i -pe 's/\QANY_STRING//' file
答案 0 :(得分:5)
它将删除export PASSORD=
perl -i -pe 's/^export PASSORD=\K.*//' file
要获得\K
正面看法,需要Perl v5.10或更高版本。
对于旧版本,
perl -i -pe 's/(?<=export PASSORD=).*//' file
-or-
perl -i -pe 's/(export PASSORD=).*/$1/' file
-or-
perl -i -pe 's/export PASSORD=.*/export PASSORD=/' file
答案 1 :(得分:2)
只需使用替代品。 ^
匹配一行开头。
perl -i~ -pe 's/^(export PASSORD=).*/$1/'