我们可以用一个Perl命令做多个替换吗?

2cmtqfgy  于 9个月前  发布在  Perl
关注(0)|答案(1)|浏览(74)

有没有一种方法可以将下面的内容合并成一个perl -pe,而不是按顺序排列?

cat text.txt | perl -pe "s/PATTERN1/$PATTERN1/g" | perl -pe "s/PATTERN2/$PATTERN2/g"
t2a7ltrp

t2a7ltrp1#

马克·塞特在评论中给出的答案是完美的:

perl -pe 's/PATTERN1/$PATTERN1/g; s/PATTERN2/$PATTERN2/g' text.txt

但这里有一个愚蠢的方法来做它只是为了好玩:

perl -pe '$_ = s/PATTERN1/$PATTERN1/gr =~ s/PATTERN2/$PATTERN2/gr' text.txt

不管怎样,你根本不需要使用管道,只需要把文件名作为最后一个参数。

相关问题