Grundlagen von Linux und der Kommandozeile
$ cat ips.txt
10.0.0.5
10.0.0.9
10.0.0.9
10.0.0.5
10.0.0.2
10.0.0.5
$ sort ips.txt | uniq -c | sort -nr | head -n 1In den Auswahlmöglichkeiten sind die Leerzeichen am Zeilenanfang weggelassen. Welche Zeile gibt die letzte Pipeline in der obigen Sitzung aus?
- A1 10.0.0.2
- B2 10.0.0.9
- C3 10.0.0.5
Antwort und Erläuterung anzeigen
Antwort: C. 3 10.0.0.5
sort ordnet die Zeilen so, dass gleiche Zeilen nebeneinanderstehen, und uniq -c fasst benachbarte gleiche Zeilen zu einer zusammen und stellt die Anzahl voran; das ergibt die drei Zeilen 3 10.0.0.5, 2 10.0.0.9 und 1 10.0.0.2. sort -nr sortiert absteigend nach der führenden Zahl, und head -n 1 nimmt die erste Zeile, also lautet die Ausgabe 3 10.0.0.5. uniq fasst nur „benachbarte“ gleiche Zeilen zusammen, daher ist das vorherige Sortieren unverzichtbar. Solche Auswertungen, bei denen Befehle mit Pipes verkettet werden, sind ein Standardverfahren, um in einem Log die IP-Adressen mit den meisten Zugriffen oder die häufigsten Fehler zu zählen.
Weiter: 9 weitere Fragen zu Grundlagen von Linux und der Kommandozeile