sed 匹配结果计算后修改到文件

# cat file 
ello 
barbaz?cache_version=4fooooo
bye

# sed -i -r 's/(.*)(\?cache_version=)([0-9]+)(.*)/echo "\1\2$((\3+1))\4"/ge' file 
# cat file 
ello 
barbaz?cache_version=5fooooo
bye

# 传递外部变量

#cache="cache_version="

#sed -i -r 's/(.*)(\?'$cache')([0-9]+)(.*)/echo "\1\2$((\3+1))\4"/ge' file 

# cat file 
ello 
barbaz?cache_version=6fooooo
bye

参考:

https://stackoverflow.com/questions/14348432/how-to-find-replace-and-increment-a-matched-number-with-sed-awk  

posted @ 2021-01-06 16:00  Hall·Morse  阅读(159)  评论(0编辑  收藏  举报