Nehmen wir an, wir haben eine Textdatei mit verbotenen Zeilen forbidden.txt
. Was ist eine kurze Möglichkeit, um alle Zeilen einer Befehlsausgabe zu filtern, die in der Textdatei vorhanden sind?
cat input.txt | exclude-forbidden-lines forbidden.txt | sort
fgrep -vxf forbidden.txt input.txt | sort
Antworten:
Verwenden Sie
grep
wie folgt:Diese lange Liste von Optionen
grep
bedeutet-v
Invertieren Sie den Sinn der Übereinstimmung, dh suchen Sie nach Dingen, die nicht übereinstimmen.-x
Wenn Sie ein Muster abgleichen, müssen Sie sicherstellen, dass das Muster mit der gesamten Linie übereinstimmt , dh nicht irgendwo auf der Linie.-F
Behandeln Sie ein gefundenes Muster als festen String , also nicht als regulären Ausdruck.-f
Liest Muster aus der angegebenen Datei (forbidden.txt
).sort
Leiten Sie das dann weiter oder was auch immer Sie damit machen möchten.quelle