Wenn ich eine Datei mit folgendem Inhalt grep:
These are words
These are words
These are words
These are words
... für das Wort These
wird die Zeichenfolge These are words
viermal gedruckt .
Wie kann ich verhindern, dass grep wiederkehrende Zeichenfolgen mehrmals druckt? Wie kann ich andernfalls die Ausgabe von grep manipulieren, um doppelte Zeilen zu entfernen?
command-line
bash
grep
Trae
quelle
quelle
Antworten:
Die Unix-Philosophie besteht darin, Werkzeuge zu haben, die eine Sache tun und sie gut machen. In diesem Fall
grep
ist dies das Tool, das Text aus einer Datei auswählt. Um festzustellen, ob Duplikate vorhanden sind, sortiert man den Text. Um die Duplikate zu entfernen, benutzt man die-u
Option zusort
. Somit:sort
hat viele Möglichkeiten: sieheman sort
. Wenn Sie Duplikate zählen möchten oder ein komplizierteres Schema haben, um zu bestimmen, was ein Duplikat ist oder nicht, leiten Sie die Sortierausgabe anuniq
:grep These filename | sort | uniq
und sehen Sie inman
uniq` nach Optionen.quelle
Verwenden Sie
grep
und einen zusätzlichen Schalter, wenn Sie nur eine einzelne Zeichenfolge suchenVon
man grep
oder mit
awk
;)quelle