ポートとそれを使用するアプリケーションを印刷します。

ポートとそれを使用するアプリケーションを印刷します。

2つのフィールドを一緒に印刷したいです。すべてのオープンポートとそれを使用するアプリケーションです。以下は私のコマンドですが、ポート番号だけを印刷し、プログラムフィールドはまだ欠けています。

netstat -lnt -u -p | awk '{print $4}' | sed 's/.*://' | sort -n | uniq

「PID/プログラム名」が「java」を返すようなプログラム名を印刷するように変更するにはどうすればよいですか?

" "の例はnetstat -lnt -u -p次のとおりです。

tcp, 0, 0, 10.194.194.21:36195, 0.0.0.0:*, リスニング, 2969/java

ポート番号とプログラム名だけを見たいです。

 36195 java

答え1

6番目と4番目のフィールドを印刷する必要があります。

これにより、期待した結果が返されます。 (コマンド結果がわからないので、より効率的な方法があるようです。)

netstat -lnt -u -p | awk '{print $4,$6}' | sed 's/.*://' | sort -n | uniq

固有のポートとプログラム名を取得する方法は次のとおりです(sed追加のsortコマンドは不要で、次のことができます)。ユニークおよび対応する-uオプション):

netstat -lnt -u -p | awk -F"[,:/]" '{print $5,$NF}'| sort -un
36195  java

答え2

短縮されたソリューション:

netstat -lpunt | awk -F' +|:+|/' '$5{print $5,$10}' | sort -n
  • -F' +|:+|/'- フィールド区切り記号(スペース、コロン、またはスラッシュ)

  • $5- ポート番号

  • $10- プログラム名

関連情報