在shell中替换40个字母数字字符串

时间:2018-03-29 14:38:19

标签: regex shell sed grep

我正在试图找出如何在大约4打文件中替换这样的字符串 该字符串类似于“{xyz}:9e665f0954513845ea1779ff762e933dbbea4dfb”,其中{xyz}(没有大括号)是随机泊坞窗图像名称,冒号后面是40个字符的字母数字字符串是图像标记。

我正在尝试删除该图片代码并将其替换为最新代码:

my-cool-image:9e665f0954513845ea1779ff762e933dbbea4dfb

成为:

my-cool-image:latest

我无法弄清楚正确的正则表达式,因为它是一个混合包的小写字符[a-z]和数字[0-9],40长。

什么是正则表达式,可以帮助我使用sed替换这些字符串?还有另一种方法吗?

我提前感谢

1 个答案:

答案 0 :(得分:4)

一起使用
$ echo 'my-cool-image:9e665f0954513845ea1779ff762e933dbbea4dfb' |
    sed -E 's/:[[:xdigit:]]+/:latest/' 


my-cool-image:latest

[[:xdigit:]]是一个匹配十六进制字符的字符类,请检查doc