如果line包含字母r后跟一个数字

时间:2013-04-26 16:49:08

标签: perl sed awk

我有一个清单:

rconr01
scordr100
dcver101
ccpcr01
yccr10
scpor01

如何在数字后面的-前添加短划线r? 要获得以下列表:

rcon-r01
scord-r100
dcve-r101
ccpc-r01
ycc-r10
scpo-r01

sedawkperl。我不知道从哪里开始。

我试过^[r][09]$,但这已经过了我的脑袋。

2 个答案:

答案 0 :(得分:3)

一种方式:

 sed 's/r[0-9]/-&/' file

答案 1 :(得分:3)

作为Perl替代:

s/(?=r\d)/-/

可用,如perl -pe's/(?=r\d)/-/' <file

(?=...)组是预测,当以下字符与模式匹配时,它匹配,但它不会提升位置。我们的模式与字符不匹配,但它匹配r之前的位置。然后在这个位置替换负数。