Erste SchritteKostenlos loslegen

Wie kann ich doppelte Zeilen entfernen?

Ein weiterer Befehl, der oft mit sort verwendet wird, ist uniq, dessen Aufgabe es ist, doppelte Zeilen zu entfernen. Um genau zu sein, werden benachbarte doppelte Zeilen entfernt. Wenn eine Datei enthält:

2017-07-03
2017-07-03
2017-08-03
2017-08-03

dann wird uniq produzieren:

2017-07-03
2017-08-03

aber wenn es enthält:

2017-07-03
2017-08-03
2017-07-03
2017-08-03

dann wird uniq alle vier Zeilen ausdrucken. Der Grund dafür ist, dass uniq für die Arbeit mit sehr großen Dateien ausgelegt ist. Um nicht benachbarte Zeilen aus einer Datei zu entfernen, es müsste die gesamte Datei im Speicher behalten (oder zumindest, alle bisher gesehenen einzigartigen Linien). Indem du nur benachbarte Duplikate entfernst, es muss nur die letzte eindeutige Zeile im Speicher behalten.

Diese Übung ist Teil des Kurses

Einführung in die Shell

Kurs anzeigen

Anleitung zur Übung

Schreibe eine Pipeline zu:

  • hole die zweite Spalte von seasonal/winter.csv,
  • das Wort "Zahn" aus der Ausgabe entfernen, damit nur die Zahnnamen angezeigt werden,
  • die Ausgabe so sortieren, dass alle Vorkommen eines bestimmten Zahnnamens nebeneinander liegen; und
  • zeige jeden Zahnnamen einmal an, zusammen mit der Anzahl, wie oft er vorkommt.

Der Beginn deiner Pipeline ist derselbe wie bei der vorherigen Übung:

cut -d , -f 2 seasonal/winter.csv | grep -v Tooth

Erweitere sie um den Befehl sort und verwende uniq -c, um einzelne Zeilen mit einer Zählung der Häufigkeit ihres Auftretens anzuzeigen, anstatt uniq und wc zu verwenden.

Interaktive Übung zum Anfassen

Setzen Sie die Theorie mit einer unserer interaktiven Übungen in die Tat um

Beginnen Sie mit dem Training