1

これが私のnetstatコマンドの出力です。最初のフィールド番号の合計をカウントしたいのですが、7+8+1+1+1+1+3+1+2..so on...どのように使用するbcか、または他のメソッドコマンドを使用してそれらを合計カウントしますか?

[root@example httpd]# netstat -natp | grep 7143 | grep EST | awk -F' ' '{print $5}' | awk -F: '{print $1}' | sort -nr | uniq -c
      7 209.139.35.xxx
      8 209.139.35.xxx
      1 209.139.35.xxx
      1 209.139.35.xxx
      1 208.46.149.xxx
      3 96.17.177.xxx
      1 96.17.177.xxx
      2 96.17.177.xxx
4

1 に答える 1

1

awkで最初の列を取得する必要があります(実際にはこれは必要ありませんが、私はそれを私の永遠の恥の記念碑として残しています)

awk {'print $1'} 

次に、もう一度awkを使用して数値の列を合計し、結果を出力します

awk '{ sum+=$1} END {print sum}'

すべて一緒に:

netstat -natp | grep 7143 | grep EST | awk -F' ' '{print $5}' | awk -F: '{print $1}' | sort -nr | uniq -c | awk {'print $1'}  | awk '{ sum+=$1} END {print sum}'

私はこれがbcを使用しないことを知っています、しかしそれは仕事を成し遂げます、それでうまくいけばそれで十分です。

于 2013-01-16T21:36:51.250 に答える