【发布时间】:2019-11-16 17:22:57
【问题描述】:
我目前使用这个 perl 命令来增加字符串中的最后一个数字:
perl -pe 's/(\d+)(?!.*\d+)/$1+1/e' <<< "abc123_00456.txt"
它输出abc123_457.txt,而我想要abc123_00457.txt。
我还希望将99 之类的内容增加到100,但如果这太难了,00 也是可以接受的。
我想要的更多示例:
09 -> 10
004 -> 005
我还希望能够增加任意数字(不仅仅是 1),所以没有++。
我不想使用 shell 的内置函数来完成这个。
【问题讨论】:
-
提示:
(?!.*\d+)可以简化为(?!.*\d),最好使用/s,因为没有理由检查换行符。
标签: regex string perl sed command-line