Regex 替换shell中的40个字母数字字符串
我正试图找出如何在大约4打文件中替换这样的字符串。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 考虑到它是一
该字符串类似于“{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:在awkawk'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