![ksh에서 포트 번호 문자열을 구문 분석하는 방법](https://linux55.com/image/99274/ksh%EC%97%90%EC%84%9C%20%ED%8F%AC%ED%8A%B8%20%EB%B2%88%ED%98%B8%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84%20%EA%B5%AC%EB%AC%B8%20%EB%B6%84%EC%84%9D%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
명령 출력에서 필요한 포트 번호를 구문 분석하고 싶습니다 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