명령 출력에서 필요한 포트 번호를 구문 분석하고 싶습니다 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