私が得る出力は次のとおりです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 }'
実際には、2つの別々のsを使用して51352
必要な正確な値を取得することが可能です。awk
awk '/^n/ { print $1 }' | awk -F':' '{print $2}'
awk
しかし、単一のコマンドまたはよりきれいな非解決策のどちらかにより良い方法がありますかawk
?
始めるには1行だけが必要なので、n*
複数行を処理することを心配する必要はありません。
答え1
2つを組み合わせます。
awk -F: '/^n\*:/ {print $2}'
答え2
他の可能性:
sed
sed -n 's/^n\*:\(.*\)/\1/p'
grep
grep -Po '^n\*:\K.*'