Negativer Abgleich mit grep (Abgleich von Zeilen, die nicht foo enthalten)
Ich habe versucht, die Syntax für diesen Befehl herauszufinden:
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 mit dem Namen error_log
.
[Ich habe hier darüber gelesen (http://www.robelle.com/smugbook/regexpr.html), aber nur ein "not"-Regex-Muster gefunden.
904
3
grep -v
ist Ihr Freund:Sehen Sie sich auch das verwandte
-L
(das Komplement von-l
) an.Sie können für diese Zwecke auch
awk
verwenden, da es Ihnen erlaubt, komplexere Prüfungen auf übersichtlichere Weise durchzuführen:Zeilen, die nicht
foo
enthalten:Zeilen, die weder "foo" noch "bar" enthalten:
Zeilen, die weder
foo
nochbar
enthalten und die entwederfoo2
oderbar2
enthalten:Und so weiter.
In Ihrem Fall wollen Sie vermutlich nicht grep verwenden, sondern stattdessen eine negative Klausel an den find-Befehl anhängen, z. B.
Wenn Sie Platzhalter in den Namen einfügen wollen, müssen Sie diese ausschließen, z. B. um Dateien mit der Endung .log auszuschließen: