Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 替换shell中的40个字母数字字符串_Regex_Shell_Sed_Grep_Posix - Fatal编程技术网

Regex 替换shell中的40个字母数字字符串

Regex 替换shell中的40个字母数字字符串,regex,shell,sed,grep,posix,Regex,Shell,Sed,Grep,Posix,我正试图找出如何在大约4打文件中替换这样的字符串。 该字符串类似于“{xyz}:9e665f0954513845ea1779ff762e933dbbea4dfb”,其中{xyz}(不带大括号)是一个随机docker图像名称,冒号后面的40个字符的字母数字字符串是图像标记 我正试图去掉该图像标签,并将其替换为最新的,因此: my-cool-image:9e665f0954513845ea1779ff762e933dbbea4dfb 成为: my-cool-image:latest 考虑到它是一

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

我正试图去掉该图像标签,并将其替换为最新的,因此:

my-cool-image:9e665f0954513845ea1779ff762e933dbbea4dfb
成为:

my-cool-image:latest
考虑到它是一个由小写字符[a-z]和数字[0-9]混合而成的包,我无法找出正确的regexp,长度为40

什么正则表达式可以帮助我使用sed替换这些字符串?还有别的办法吗

提前致谢

将此与以下内容一起使用:



[:xdigit:]
是一个匹配十六进制字符的字符类,请检查sed-i.bak-E的/:[a-z0-9]{40}/:latest/'file这一个除了生成40*.bak文件之外什么也没做,因为当冒号后面有
40
akphanumerics时,会更改内联文件。@SteveMustafa:在awk
awk'BEGIN{FS=OFS=“:”}$2~/[:alnum:]{40}/{$2=“latest”}1'文件中执行此操作的方法
谢谢,直到-但是我如何扩展它来阅读40个文件中的行呢?当然,如果我把头放在肩膀上,“-I”。再次感谢你
$ echo 'my-cool-image:9e665f0954513845ea1779ff762e933dbbea4dfb' |
    sed -E 's/:[[:xdigit:]]+/:latest/' 
my-cool-image:latest