Como analisar uma string para o número da porta no ksh

1

Eu quero analisar o número da porta que preciso da saída do comando docker port . O comando docker port <container-name> retorna a saída da seguinte forma:

15672/tcp -> 0.0.0.0:49187 5672/tcp -> 0.0.0.0:49188
5678/tcp -> 0.0.0.0:49189

Portanto, é um único número de porta ou dois números de porta.

Felizmente, no caso de o comando citar 2 números de porta, eu sempre preciso apenas do segundo exibido. Para esclarecer, nos dois exemplos acima, preciso analisar os valores 49188 e 49189 port da saída do comando docker port .

Qual é o caminho mais curto para alcançar isso?

    
por Cengiz 22.11.2016 / 10:41

2 respostas

2

Parece um trabalho simples para sed :

docker port <container-name> | sed 's/^.*:\([0-9]*\)$//'

Ou se preferir awk :

docker port <container-name> | awk -F':' '{print $NF}'
    
por 22.11.2016 / 11:14
1
docker port <container-name> | while read -r line;do echo ${line##*:};done
    
por 22.11.2016 / 11:00