我想从命令的输出中解析我需要的端口号docker port
。该docker port <container-name>
命令返回输出如下:
15672/tcp -> 0.0.0.0:49187 5672/tcp -> 0.0.0.0:49188
5678/tcp -> 0.0.0.0:49189
所以它要么是单个端口号,要么是 2 个端口号。
值得庆幸的是,如果该命令输出 2 个端口号,我总是只需要显示第二个端口号。为了澄清这一点,在上面的两个示例中,我需要从命令的输出中解析49188
并端口值。49189
docker port
实现这一目标的最短方法是什么?
答案1
听起来像是一项简单的工作sed
:
docker port <container-name> | sed 's/^.*:\([0-9]*\)$/\1/'
或者如果您愿意awk
:
docker port <container-name> | awk -F':' '{print $NF}'
答案2
docker port <container-name> | while read -r line;do echo ${line##*:};done