在正则表达式中自动递增变量

时间:2011-01-06 12:59:58

标签: regex variables auto-increment

我正在使用Unix.sh文件,并且在文件中我有一个带有变量的正则表达式,每次都必须递增。计数设置为1.每次都应该递增。 stringA = echo $stringA | sed "s/[A-Za-z]\{3\},[0-9]*/$count++,&,/g"

所以我的输出应该是

prgm([(1,ABC,1,),(2,XYZ,1,),(3,PQR,1,)]),....

但我得到的是

prgm([(0++,ABC,1,),(0++,XYZ,1,),(0++,PQR,1,)]),....

2 个答案:

答案 0 :(得分:3)

正则表达式用于匹配字符串。它们不会在匹配发生时操纵变量。

您没有说出您使用的语言,但我建议您找到返回给定字符串中所有匹配项的方法。完成后,您可以遍历列表并插入递增计数的值。

答案 1 :(得分:1)

不是用sed。去使用现代的东西:

perl -pe 's/[A-Z]{3},\d*/$count++.",$&,"/egi'