LoslegenKostenlos loslegen

Wie kann ich doppelte Zeilen löschen?

Ein weiterer Befehl, der oft mit „ sort “ zusammen benutzt wird, ist „ uniq “. dessen Aufgabe es ist, doppelte Zeilen zu entfernen. Genauer gesagt, Es entfernt benachbarte doppelte Zeilen. Wenn eine Datei Folgendes enthält:

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

Dann wird „ uniq “ Folgendes erzeugen:

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 ausgeben. Der Grund dafür ist, dass „ uniq “ für die Arbeit mit sehr großen Dateien entwickelt wurde. Um nicht benachbarte Zeilen aus einer Datei zu löschen, Es müsste die ganze Datei im Speicher behalten. (oder zumindest, alle bisher gesehenen einzigartigen Linien). Indem man nur benachbarte Duplikate entfernt, Es muss nur die aktuellste eindeutige Zeile im Speicher behalten.

Diese Übung ist Teil des Kurses

Einführung in Shell

Kurs anzeigen

Anleitung zur Übung

Schreib eine Pipeline an:

  • Hol die zweite Spalte von seasonal/winter.csv,
  • Entfern das Wort „Tooth“ aus der Ausgabe, damit nur die Namen der Zähne angezeigt werden.
  • Sortier die Ausgabe so, dass alle Vorkommen eines bestimmten Zahnnamens nebeneinander liegen; und
  • Zeig jeden Zahnnamen einmal zusammen mit der Häufigkeit seines Vorkommens an.

Der Anfang deiner Pipeline ist derselbe wie in der vorherigen Übung:

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

Erweitere es mit dem Befehl „ sort “ und benutze „ uniq -c “, um eindeutige Zeilen mit einer Zählung ihrer Häufigkeit anzuzeigen, anstatt „ uniq “ und „ wc “ zu verwenden.

Interaktive Übung

In dieser interaktiven Übung kannst du die Theorie in die Praxis umsetzen.

Übung starten