2016-08-03 35 views
0

Hallo haben Sie den folgenden Befehl:Count Zeilen von CLI-Ausgabe unter Linux

lsscsi | grep HITACHI | awk '{print $6}' 

Ich möchte, dass die Ausgabe die Anzahl der Zeilen des ursprünglichen ausgegeben. Zum Beispiel, wenn die ursprüngliche Ausgabe lautet:

/dev/sda 
/dev/sdb 
/dev/sdc 

Die endgültige Ausgabe 3 sein wird.

+3

'lsscsi | grep HITACHI | awk '{print $ 6}' | wc -l' –

+0

Danke. So einfach :) – Omri

+1

@JuanTomas Benutze niemals 'grep foo | awk '{print $ 1}' '. Es sollte 'awk'/foo/{print $ 1} 'sein. Wenn Sie 'awk' verwenden, ist' grep' nicht erforderlich, was unnötigen Overhead bedeutet. – hek2mgl

Antwort

3

Grundsätzlich kann der Befehl wc -l verwendet werden, um die Zeilen in einer Datei oder einer Pipe zu zählen. Da Sie jedoch die Anzahl der Zeilen zählen wollen, nachdem ein Filter angewendet wurde würde ich empfehlen grep dafür zu verwenden:

lsscsi | grep -c 'HITACHI' 

-c druckt nur die Anzahl der passenden Zeilen.


Eine andere Sache. In Ihrem Beispiel verwenden Sie grep .. | awk. Das ist eine nutzlose Verwendung von grep. Es sollte

sein
lsscsi | awk '/HITACHI/{print $6}'