Regex perl:如何仅保存编辑文件中的编辑更改(不删除它)?

Regex perl:如何仅保存编辑文件中的编辑更改(不删除它)?,regex,shell,perl,Regex,Shell,Perl,我从STDIN编辑一个文件: $perl-wlne'if(/start here//end here/)&(/line to change/){print s/match/change/r}'somefile.txt 我添加了-I选项,但只在文件中留下了更改(一行),其他所有内容都被删除了。那么,如何只将正则表达式中的更改保存在行中,以更改,而不删除所有其他内容呢?这就是需要的: perl -wlpe 's/match/CHANGE/ if (/start here/

我从STDIN编辑一个文件:
$perl-wlne'if(/start here//end here/)&(/line to change/){print s/match/change/r}'somefile.txt


我添加了
-I
选项,但只在文件中留下了更改(一行),其他所有内容都被删除了。那么,如何只将正则表达式中的更改保存在
行中,以更改
,而不删除所有其他内容呢?

这就是需要的:

perl -wlpe 's/match/CHANGE/
              if (/start here/ .. /end here/)
                  && /line to change/' somefile.txt
-p
负责打印


一旦您对结果满意,就可以添加
-i
进行就地编辑。

语法为
简单的语句if EXPR,而不是
简单语句if(EXPR)。固定的。还删除了您添加的无关块。Re“如何打印当前编辑文件的更改?”,这就是您所说的,所以我不理解这个问题。