相关文章推荐
迷茫的领结  ·  No validator could be ...·  11 月前    · 
高大的骆驼  ·  Java 数组 | 菜鸟教程·  1 年前    · 
个性的鸡蛋面  ·  Laravel 自定义 SQL ...·  2 年前    · 
买醉的吐司  ·  grpc 断线重连-掘金·  2 年前    · 

perl + 只有在与行中的字符串完全匹配时才删除该行

1 人关注

I work on the following file:

more file1
name="UAT/CC/Global/MES/UK/adWerum-UK" 
name="UAT/CC/Global/MES/UK/adWerum-UK-Adapter" 
name="UAT/CC/Global/MES/UK/adWerum-UK1" 
name="HOME/UAT/CC/Global/ME/UK/adWerum-UK" 

我创建了以下perl命令,以便只删除带有反斜线的字符串。

UAT/CC/Global/ME/UK/adWerum-UK

perl的语法。

perl -n -i -e 'print unless m/\Q$ENV{A}\E/' file1

问题是perl删除了所有包含该行的行。

UAT/CC/Global/ME/UK/adWerum-UK    
A=UAT/CC/Global/MES/UK/adWerum-UK
export A=UAT/CC/Global/ME/UK/adWerum-UK
perl -n -i -e 'print unless m/\Q$ENV{A}\E/' file1
more file1
file is empty

虽然预期的结果是

name="UAT/CC/Global/MES/UK/adWerum-UK-Adapter" 
name="UAT/CC/Global/MES/UK/adWerum-UK1" 
name="HOME/UAT/CC/Global/ME/UK/adWerum-UK" 

请告知我的perl语法需要做什么修改,以便只删除双倍配额之间的匹配字符串的行。