내가 얻는 출력은 다음과 같습니다 lsof -F
.
p7646
g7646
R8300
csocat
u1000
Labe
f3
au
l
tIPv4
G0x80002;0x0
d640391
o0t0
PTCP
n*:51352
TST=LISTEN
TQR=0
TQS=0
51352
나는 이해하고 싶은 바운드 포트인 value 를 캡처하려고 합니다 .
나는 가까이에 있습니다. n*:51352
다음을 통해 가치를 얻을 수 있습니다.
awk '/^n/ { print $1 }'
실제로 두 개의 별도 s를 사용하여 51352
필요한 정확한 값을 얻는 것이 가능합니다.awk
awk '/^n/ { print $1 }' | awk -F':' '{print $2}'
awk
그러나 단일 명령 이나 더 깔끔한 비 솔루션 중 더 나은 방법이 있습니까 awk
?
시작하려면 한 줄만 있어야 하므로 n*
여러 줄을 처리하는 것에 대해 걱정할 필요가 없습니다.
답변1
두 가지를 결합합니다.
awk -F: '/^n\*:/ {print $2}'
답변2
다른 가능성:
sed
sed -n 's/^n\*:\(.*\)/\1/p'
grep
grep -Po '^n\*:\K.*'