2013-01-16 5 views
1

Voici la sortie de ma commande netstat. Je veux compter le total du premier numéro de champ comme 7+8+1+1+1+1+3+1+2..so on... Comment puis-je utiliser bc ou toute autre commande de méthode pour les compter au total?Nombre total de commandes 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

vous avez probablement une meilleure chance d'obtenir une réponse sur http://unix.stackexchange.com/ –

Répondre

1

Vous devez obtenir la première colonne avec awk (Vous ne fait pas besoin de cela, mais je repars comme un monument à ma honte éternelle)

awk {'print $1'} 

puis utilisez awk à nouveau pour résumer la colonne des nombres et imprimer le résultat

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

Tous ensemble:

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}' 

Je sais que ça n'utilise pas bc, mais ça fait le travail, donc j'espère que c'est suffisant.

+0

Epic - Merci !!! – Satish

+1

En fait, vous n'avez pas besoin de faire 'awk '{print $ 1}'' d'abord. – speakr

+0

Gah! Vous avez raison bien sûr. Alors que je le construisais sur la ligne de commande, j'essayais d'utiliser bc (et j'ai abandonné) mais l'impression $ 1 est restée. – Slartibartfast