Combine os dois:
awk -F: '/^n\*:/ {print $2}'
Eu tenho uma saída de lsof -F
que se parece com isso:
p7646
g7646
R8300
csocat
u1000
Labe
f3
au
l
tIPv4
G0x80002;0x0
d640391
o0t0
PTCP
n*:51352
TST=LISTEN
TQR=0
TQS=0
Estou tentando capturar o valor 51352
, que é uma porta vinculada à qual estou interessado em saber.
Estou perto de conseguir o valor de n*:51352
com isso:
awk '/^n/ { print $1 }'
e pode realmente obter o valor exato de 51352
com dois awk
s separados:
awk '/^n/ { print $1 }' | awk -F':' '{print $2}'
mas existe uma maneira melhor, seja um comando único awk
ou uma solução mais limpa que não seja awk
?
Deve haver apenas uma linha começando com n*
, então não preciso me preocupar em lidar com várias linhas.
Outras possibilidades:
sed
sed -n 's/^n\*:\(.*\)//p'
grep
grep -Po '^n\*:\K.*'