regex - 正则表达式替换以构建文件中的版本

标签 regex linux unix jenkins sed

需要正则表达式将属性文件中的构建版本 1.0.0 替换为 1.0.2,文件内容类似于下面提到的内容;

Eagle-1.0.0
Chick-1.0.0
Bingo-1.0.0

下面的方法我都试过了,还是不行

sed -i "s/1\.0\.O\.[0-9.]*/1.0.0./g" file.txt

最佳答案

您可以只运行以下 sed 命令:

XXX@XXX:~/Downloads/fun_play/archive/filestosearch$ cat version 
Eagle-1.0.0 Chick-1.0.0 Bingo-1.0.0
XXX@XXX:~/Downloads/fun_play/archive/filestosearch$ sed -i".bak" 's/1\.0\.0/1.0.2/g' version
XXX@XXX:~/Downloads/fun_play/archive/filestosearch$ cat version
Eagle-1.0.2 Chick-1.0.2 Bingo-1.0.2
XXX@XXX:~/Downloads/fun_play/archive/filestosearch$ cat version.bak 
Eagle-1.0.0 Chick-1.0.0 Bingo-1.0.0

注意事项:

  • -i".bak" 允许您修改文件并备份文件以防万一,相同的文件名和后缀 .bak
  • 您需要转义 否则它们将被 sed 正则表达式引擎解释为元字符。

关于regex - 正则表达式替换以构建文件中的版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54777455/

相关文章:

linux - 为什么 vim 默认连接到 X?

javascript - 正则表达式非将符号后的字符转换为大写

regex - 匹配 Compojure/Clout 中的路线

JavaScript : How to extract complex content in a string

Java正则表达式检查字符串是否是有效的数字格式(逗号和小数点放置)

linux - tar 命令后 Docker 运行时错误

linux - 在 unix 中移动一组文件

linux - 查找并删除文件但不是特定路径

linux - VmSize = 物理内存 + swap?

c - 关于整数内存分配