Gibt es eine Möglichkeit, eine inverse Suche durchzuführen? Ich habe eine sehr große Protokolldatei, in der ein bestimmtes Muster für einige Dutzend Seiten ausgefüllt ist.
%Vor%Problem ist, ich weiß nicht, welcher Text nach "alpha beta" wäre. Es könnte "Gamma-Delta" oder etwas anderes sein. Daher möchte ich alle Zeilen überspringen, die "Alpha Beta" enthalten.
Im Allgemeinen können Sie keine inverse Suche durchführen, aber für Ihren speziellen Fall könnten Sie eine einfache Funktion verwenden:
%Vor%dann in ". + Alpha Beta" für die Regexp.
Normalerweise löse ich das, indem ich eine regexp Suche verwende
%Vor%sucht nach der nächsten Zeile, die "20100414" lautet, und das macht den Großteil der Zeit. Es würde die "gamma delta" -Linie finden, würde aber offensichtlich eine Linie vermissen, die wie "20100414 allegro" aussieht.
Es gibt auch den Befehl M-x flush-lines RE , der alle Zeilen entfernt, die mit dem regulären Ausdruck RE
übereinstimmen. Dies ändert den Puffer.
Eine heuristische Methode, die sich oft als nützlich erweist, besteht darin, zum Ende der Datei zu springen und dann rückwärts nach dem Text zu suchen, den Sie überspringen möchten. Der Erfolg dieser Methode hängt natürlich vom Inhalt der Datei ab und funktioniert am besten, wenn der betreffende Text in einzelnen Blöcken auftritt.
Tags und Links emacs