2013-01-16 40 views
1

這是我的netstat命令的輸出。我想統計第一個字段的總數,例如7+8+1+1+1+1+3+1+2..so on...如何使用bc或其他任何方法命令來統計它們?Linux bc命令總數

[[email protected] 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 
+0

你可能有更好的機會在http://unix.stackexchange.com/ –

回答

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,但它完成了工作,所以希望這已經足夠了。

+0

上得到答案史詩 - 謝謝! – Satish

+1

其實你不需要先'awk'{print $ 1}'。 – speakr

+0

Gah!你當然是對的。當我在命令行中構建它時,我試圖使用bc(並放棄),但是打印$ 1還剩下。 – Slartibartfast