Solução abreviada:
netstat -lpunt | awk -F' +|:+|/' '$5{print $5,$10}' | sort -n
-
-F' +|:+|/'
- separador de campos (espaço (s), dois pontos (s) ou barra) -
$5
- número da porta -
$10
- nome do programa
Eu quero imprimir dois campos juntos, todas as portas abertas e o aplicativo usando. Este é o meu comando, mas ele só imprime os números de porta e ainda está faltando o campo do programa:
netstat -lnt -u -p | awk '{print $4}' | sed 's/.*://' | sort -n | uniq
Como posso modificar isso para imprimir também o nome do programa como em "nome do programa / PID" retornará "java"
Uma amostra de " netstat -lnt -u -p
" é assim:
tcp, 0, 0, 10.194.194.21:36195, 0.0.0.0:*, LISTEN, 2969 / java
E eu quero ver apenas o número da porta e o nome do programa:
36195 java
Você precisa imprimir o 6º campo e o 4º
Isso deve retornar o que você esperava ter. (como eu não sei o resultado do comando e certamente haverá uma maneira mais eficiente).
netstat -lnt -u -p | awk '{print $4,$6}' | sed 's/.*://' | sort -n | uniq
Aqui está a maneira de obter a única porta e o programName (nenhum comando extra sed
é necessário e sort
pode uniqe com sua opção -u
):
netstat -lnt -u -p | awk -F"[,:/]" '{print $5,$NF}'| sort -un
36195 java
Tags text-processing netstat awk