次のような値を持つファイルがあります:
31.13.77.12:443 TIME_WAIT
31.13.77.12:443 確立
31.13.77.36:443 確立
31.13.77.29:443 確立
31.13.77.12:443 TIME_WAIT
ファイルに出力を次のようにしたい:
IP_ADDR ポート ステータス カウント
31.13.77.12 443 TIME_WAIT 2
31.13.77.12 443 ESTABLISHED 1
31.13.77.36 443 ESTABLISHED 1
31.13.77.29 443 ESTABLISHED 1
すべてのフィールドはタブで区切られています。IP とポートを抽出することはできますが、2 つの列を比較してカウントを取得する方法がわかりません。
答え1
netstat -n | awk '$1=="tcp"{print $5,$6}' OFS="\t\t" >output.txt
sort output.txt | uniq --count >output1.txt
echo -e "Count" "IP" '\t\t' "Port" '\t' "State" >final.txt
sed 's/\:/\t/' output1.txt >> final.txt