strings - man grep




Negative Übereinstimmung mit grep(Übereinstimmungszeilen, die kein foo enthalten) (2)

In Ihrem Fall möchten Sie vermutlich nicht grep verwenden, sondern dem Befehl find stattdessen eine negative Klausel hinzufügen, z

find /home/baumerf/public_html/ -mmin -60 -not -name error_log

Wenn Sie in den Namen Platzhalter einfügen möchten, müssen Sie diese ausschließen, um z. B. Dateien mit dem Suffix .log ausschließen zu können:

find /home/baumerf/public_html/ -mmin -60 -not -name \*.log

Ich habe versucht, die Syntax für diesen Befehl auszuarbeiten:

grep ! error_log | find /home/foo/public_html/ -mmin -60

oder

grep '[^error_log]' | find /home/baumerf/public_html/ -mmin -60

Ich muss alle Dateien sehen, die geändert wurden, außer denen, die error_log .

Ich habe es hier gelesen , aber ich habe nur ein not regex Muster gefunden.


Sie können awk für diese Zwecke verwenden, da Sie dadurch komplexere Überprüfungen auf eine klarere Weise durchführen können:

Zeilen ohne foo :

awk '!/foo/'

Zeilen, die weder foo noch bar :

awk '!/foo/ && !/bar/'

Zeilen, die weder foo noch bar enthalten, aber entweder foo2 oder bar2 :

awk '!/foo/ && !/bar/ && (/foo2/ || /bar2/)'

Und so weiter.