如下一个文件a.txt,需要把括号中的第三列数字算术上加1,并且实现文件的原地替换,类似sed -i的选项。

setbusinesstartpos(0, 0, 1)
setbusinesstartpos(1, 1, 2)

利用perl的正则表达式-e选项实现算术运算,-i来进行原地替换,如下命令

perl -pi -e ’s/startpos\((\d), (\d), (\d)\)/”startpos\(” .$1. “, ” .$2. “, ” .($3+1). “\)”/ge’ a.txt