Antworten:
Es gibt einen einfachen Weg, dies zu erreichen. Sie müssen 3 Schritte ausführen.
Gehen Sie zum Menü Suchen> Suchen ...> Wählen Sie die Registerkarte "Markieren". Aktivieren Sie reguläre Ausdrücke. Suchen nach ^<Path>
( ^
steht für Zeilenanfang). Vergessen Sie nicht, "Lesezeichen" zu markieren und "Alle markieren" zu drücken.
==> Alle Zeilen, die Sie behalten möchten, haben ein Lesezeichen
Gehen Sie zum Menü "Suchen - Lesezeichen - Inverses Lesezeichen"
==> Alle Zeilen, die Sie löschen möchten, sind mit einem Lesezeichen versehen.
Gehen Sie zum Menü "Suchen - Lesezeichen - Mit Lesezeichen versehene Zeilen entfernen"
==> Alle markierten Zeilen werden gelöscht.
Dies kann ab 6.3 in zwei Schritten erfolgen. Ich denke, es kann früher gemacht werden, da ich 5.9 hatte, als ich es zum ersten Mal ausprobiert habe.
Verwenden Sie Stemas Post als Grundlage für diese Antwort. Es gibt jetzt einen Schritt weniger. Linien markieren und nicht markierte Linien entfernen. Getan. Detaillierte Anweisungen folgen.
Suchmenü "Suchen". Klicken Sie im Dialogfeld "Suchen" auf die Registerkarte "Markieren". Aktivieren Sie reguläre Ausdrücke. Suchen nach ^<Path>
( ^
steht für Zeilenanfang). Vergessen Sie nicht, "Lesezeichen" zu markieren und "Alle markieren" zu drücken.
==> Alle Zeilen, die Sie behalten möchten, haben jetzt ein Lesezeichen
Suchmenü -> Lesezeichen -> Nicht markierte Zeilen entfernen.
==> Alle NON Markiert Zeilen werden gelöscht.
^
Suchbegriff hinzufügen noch einen regulären Ausdruck verwenden. Hoffe das hilft jemandem.
Regex ersetzen
(?!^.*test.*$)^.+
Ersetzen Sie den Test durch Ihren gewünschten Text
ersetzen
[\r\n]{2,}
mit \r\n
Dient ^(?!<Path>).*\r\n
zum Ersetzen von Übereinstimmungen durch eine leere Zeichenfolge. Verallgemeinerte Version wäre ^(?!.*?test).*\r\n
. Dadurch wird keine leere Zeile am Ende der Datei entfernt. Alle anderen Zeilen, einschließlich mehrerer aufeinanderfolgender Leerzeilen, werden entfernt.
(?!)
ist ein negativer Blick nach oben. ^.*test.*$
Wählt die gesamte Zeile aus, die den angeforderten Text enthält.
[\r\n]{2,}
Stimmt mit allen überein \r\n
, die mehrmals vorkommen, wenn dies die neue Windows-Zeile ist. Wenn Sie Linux oder ein anderes Betriebssystem haben, müssen Sie möglicherweise damit herumspielen. Die zweite besteht darin, sie durch eine Rückleitung zu ersetzen.
\r\n
im Beitrag erwähnte EOL ist das, was Windows verwendet und daher möglicherweise nicht das ist, wonach Sie suchen. In Linux-Umgebungen ist dies oft nur der Fall \n
, oder in Mac-Umgebungen nur \r
. Wenn Sie also eine Datei von einer dieser beiden ziehen, wird sie nicht im Windows-Stil erstellt. Wenn Sie jedoch Trigger im FileZilla- und ASCII-Modus herunterladen, werden diese möglicherweise wieder in Windows EOL (wie \n
in \r\n
) geändert . Wenn Regex nicht funktioniert, überprüfen Sie den EOL-Stil unter "Ansicht> Symbole anzeigen> Zeilenende anzeigen". CR = \r
. LF = \n
.
Es scheint mir, dass der einfachste Weg ist, einfach die Funktion "Alle in aktuellem Dokument suchen" zu verwenden und dann entweder die Ergebnisse in eine neue Datei zu kopieren oder alle auszuwählen und in der aktuellen zu ersetzen.
Dies würde alle Zeilen finden, die Ihren Text enthalten, und sie unten auflisten. Einfach mit der rechten Maustaste auf das Suchergebnis klicken und kopieren / einfügen.
\tLine [\d]*:
. Immer noch eine gute Antwort.
Gehen Sie zum Menü Suchen -> Suchen ... -> Reguläre Ausdrücke aktivieren. Suchen Sie nach "^ Pfad " (^ steht für Zeilenanfang).
Klicken Sie auf die Schaltfläche "Alle im aktuellen Dokument suchen".
Das Fenster "Suchergebnis" wird mit allen Linien des Musters angezeigt. Wählen Sie Kopieren / Einfügen in eine neue Registerkarte in Notepad ++.
Gehen Sie in diesem neuen Tab zu: Menü Suchen -> Ersetzen ... -> Reguläre Ausdrücke aktivieren.
Verwenden Sie im Feld "Suchen nach:" das Muster: "Line \ d +:". Lassen Sie das Feld "Ersetzen durch:" leer.
Klicken Sie auf die Schaltfläche "Alle ersetzen".
Vorausgesetzt, Sie möchten tatsächlich eine Übereinstimmung <Path>
und keinen Dateisystempfad finden, können Sie dies über eine Befehlszeile mit Perl versuchen:
perl -pe " if ($_ !~ /<Path>/) { s/$_// } " < in.txt > out.txt
Es funktionierte mit Strawberry Perl unter Windows, passen Sie es also entsprechend an, wenn die Ergebnisse nicht Ihren Erwartungen entsprechen.
Es ist umständlich, aber kopieren Sie alles nach Excel und verwenden =IF(LEFT(A1,6)="<Path>",A1,"")
und kopieren Sie diese Formel dann ganz nach unten. Kopieren Sie diese dann zurück in Notepad ++. Es ist nicht ideal, aber es ist ziemlich einfach (wenn Sie Excel haben). Warnung: Es funktioniert nicht gut mit eingerückten Zeilen (Excel verschiebt die Spalten usw.).
Es gibt keine einfache Möglichkeit, mit Notepad ++ das zu tun, was Sie wollen. Sie müssen entweder ein Programm auf Ihren Computer herunterladen oder etwas in VB skripten (ich nehme an, Sie arbeiten unter Windows).
Sie können mit sed auf zwei Arten tun, was Sie wollen. Das sed-Dienstprogramm ist ein Favorit auf * nix und kann für Windows von den großartigen Leuten bei GnuWin ( http://gnuwin32.sourceforge.net/packages/sed.htm ) gefunden werden. Sie würden dieses Programm herunterladen und dann Ihren Befehl an der Eingabeaufforderung ausführen.
Löschen Sie alle Zeilen, die Folgendes nicht enthalten:
sed -i '/^<PATH>/!d' file
Drucke alle Zeilen, die eine neue Datei enthalten:
sed -n '/^<PATH>/p' file > newfile
Ich schlage vor, Sie drucken die gewünschten Zeilen in eine neue Datei. Der Grund dafür ist, dass Sie die Regex-Anweisung wahrscheinlich nicht zum ersten Mal erhalten. Das Dienstprogramm sed verwendet die Basissyntax für reguläre Ausdrücke (siehe Referenz unter http://www.regular-expressions.info/reference.html ). Wenn es sich um einen * nix-Pfad (/ var / www) handelt, müssen Sie das / -Zeichen maskieren, damit Ihre Regex funktioniert.
Beispiel: sed -n '/^\/var\/www/p' file > newfile
Hiermit werden alle Zeilen ausgegeben, die mit '/ var / www' beginnen. Wenn ich mich angemeldet hätte, um dem / -Zeichen zu entkommen, hätte der Befehl einen Fehler ausgelöst. Sie können ein Sonderzeichen (z. B. /) mit dem umgekehrten Schrägstrich \ maskieren.
Verwenden Sie Suchen-> Ersetzen und geben Sie einen regulären Ausdruck wie folgt ein ^[^ ].*
und ersetzen Sie alle durch eine leere Zeichenfolge mit Regular expression
. Die nächste Schritt ist für leere Zeilen der Suche zu finden , \n\n
ersetzt mit \n
Verwendung von Extended
mehrfach bis 0 occurrences were found.
(Verwendung \r\n\r\n
und \r\n
je nach Dateiformat). Wenn Sie sehr viele Leerzeilen hintereinander haben, können Sie schneller \n\n\n\n\n\n\n
oder sogar mehr \n
: s in der Suchzeichenfolge verwenden .