我有这个字符串
localhost:32121 / root / docker_registry / aiindevops.azurecr.io / msbuild:0.1
我想从上方提取此“ aiindevops.azurecr.io/msbuild:0.1”值。
答案 0 :(得分:1)
您没有指定字符串的哪一部分是确切的重复模式。
我将假设localhost:32121/root/docker_registry/
永远不会改变。
然后,实现此目标的众多方法之一是用sed
进行简单的正则表达式替换(注意:为了便于阅读,我使用了|
而不是通常的/
来避免转义) URL中的/
:
$ echo "localhost:32121/root/docker_registry/aiindevops.azurecr.io/msbuild:0.1" | sed -Ee 's|localhost:32121/root/docker_registry/(.+)|\1|'
aiindevops.azurecr.io/msbuild:0.1
另一种使用cut
,其中/
作为字段分隔符,并从字段4输出到末尾:
$ echo "localhost:32121/root/docker_registry/aiindevops.azurecr.io/msbuild:0.1" | cut -d '/' -f4-
aiindevops.azurecr.io/msbuild:0.1