我的输入文件是,
ami41 ami56
ami23
ami67
ami45 ami34 ami88
jama66
tumi234 bichi23455
susami345
使用单个命令行我需要输出如下内容,
ami42 ami57
ami24
ami68
ami46 ami35 ami89
jama66
tumi234 bichi23455
susami345
我使用了命令,
perl -pe 's/(\d+)/$1+1/eg' inputfile
但是我得到的输出文件是,
ami42 ami57
ami24
ami68
ami46 ami35 ami89
jama67
tumi235 bichi23456
susami346
即所有带有字符串类型的数字都会增加。但我只需要带有字符串的数字ami
增加。有人能给我推荐一些更好的命令行吗?
答案1
用一个Perl 后向回顾:
$ perl -pe 's/(?<=ami)(\d+)/$1+1/eg' inputfile
ami42 ami57
ami24
ami68
ami46 ami35 ami89
jama66
tumi234 bichi23455
susami346
告诉Perl在匹配其余模式之前(?=<ami)
查找,但实际上并不将其包含在匹配中。ami