我想增加文件中引号中的每个数字,每行一个:
perl -pe 's/\"(\d+)\"/ 1 + $1 /ge' file
这会删除引号 - 无法弄清楚如何将引号添加回输出。
答案 0 :(得分:6)
perl -pe 's/\"(\d+)\"/ q{"} . (1 + $1) . q{"} /ge'
答案 1 :(得分:5)
您可以使用外观断言 - http://perldoc.perl.org/perlre.html#Extended-Patterns。
所以正则表达式变成:s/(?<=")(\d+)(?=")/ $1 + 1 /ge
答案 2 :(得分:1)
许多解决方案:
perl -lpe 's/"(\d+)"/$1+1/e;s/(.*)/"$1"/'
答案 3 :(得分:1)
高尔夫赢家是:
perl -pe's/"(\d+)"/"@{[1+$1]}"/g'
答案 4 :(得分:0)
perl -pe 's/(\d)/{"\"".(1+$1)."\""}/ge' file
说明:e
修饰符告诉perl评估替换值(用大括号括起来)。 1+$1
返回递增的数字。