emacs: inverse Suche

8

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.

    
Data 14.04.2010, 19:43
quelle

6 Antworten

6

Zwei Ideen:

  1. M-x keep-lines <RET> REGEXP <RET>

    löscht alle Zeilen, die nicht mit einem regulären Ausdruck übereinstimmen

  2. M-x grep <RET> grep -nH -e "<REGEXP>" -v <FILE>

    findet alle Zeilen in NOT, die Ihre Regexp enthalten.

ostolop 14.04.2010 20:19
quelle
3

Sie könnten versteckte Zeilen verwenden: Ссылка

Dann wird M-x hide-lines RET alpha beta RET alle Zeilen ausblenden, die "Alpha Beta" enthalten.

Jetzt können Sie z. B. mit z. C-s ...

    
slu 15.04.2010 09:33
quelle
2

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.

    
scottfrazer 15.04.2010 02:24
quelle
1

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.

    
Trey Jackson 14.04.2010 20:15
quelle
0

Sie können auch mit grep suchen, indem Sie angeben, dass die Zeilen, die nicht enthalten, übereinstimmen sollen.

Sie können auch mit icicle-occur suchen und mit C- ~ Zeilen entfernen, die mit Ihrer Eingabe übereinstimmen.

Ссылка

    
Drew 21.08.2011 09:10
quelle
0

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.

    
f d 16.12.2016 22:19
quelle

Tags und Links