Ich muss nach Zeilen suchen, die ein Wort, aber kein zweites Wort enthalten.
Suchen Sie beispielsweise nach Zeilen, die das Wort "This", aber nicht das Wort "red" enthalten.
so dass für eine Datei mit diesen Zeilen
This is a blue coat
This is a red coat
This is a purple coat
That is a coat
Die Suche würde nur die erste und dritte Zeile finden.
Danke für jeden Rat!
Antworten:
Mit diesem Befehl können Sie Zeilen drucken, die Folgendes enthalten
This
und nichtred
:\&
trennt die Zweige wie eine Logik,AND
weil wir die Linien wollen, die die beiden Bedingungen (Zweige) erfüllen,\(.*This\)
ist der erste Zweig, es könnte einfach sein,This
aber es ist so allgemeiner,\(.*red\)\@!
ist der zweite Zweig,\@!
bedeutet "Null-Breiten-Übereinstimmung, wenn das vorhergehende Atom nicht übereinstimmt", wie eine logischeNOT
.Mit anderen Worten:
quelle
Schauen Sie sich diesen Beitrag an.
Kombiniere es mit @romainl answer und du kannst machen, was du willst.
Beispiel: Nehmen wir an, ich möchte a
const
zu den Funktionen hinzufügen , die sie nicht haben.VIM-Skript:
Ausgabe:
Erläuterung:
- hol mir alle leitungen die hat
word =
- Regeln kombinieren
- Die Zeile sollte nicht enthalten
const
.quelle