Jedi Tricks – Notepad++ – Jede zweite Zeile löschen

Sicherlich ist euch noch der Trick mit dem Finden und Markieren von bestimmten Zeilen bekannt. Diesen kann man jedoch nicht anwenden, wenn man kein Zeichenmuster in den betroffenen Zeilen finden kann. In meinem Fall war es eine Datei mit Usern und deren Klarnamen. Das hat sich immer abgewechselt. Also in der ersten Zeile der Username und in der zweiten Zeile der Klarname. Dann kam der nächste Eintrag. Daraus hat sich ein Zeilenmuster ergeben. Ich habe in diesem Fall nur den Usernamen und damit nur jede “ungerade” Zeile gebraucht.

Doch wie entfernt man jede zweite Zeile? Das geht nur mit RegEx und einer kleinen Abwandlung der Pre- und Suffix Vorgehensweise.

Wir gehen in die Ersetzen Funktion (STRG+h) und aktivieren die " Regulären Ausdrücke". Wichtig ist auch, dass man die Option " Am Ende von vorne beginnen" deaktiviert. Dann würde das Ersetzen mit jedem Durchlauf die Datei leeren.

Wie ihr schon im Screenshot sehen könnt, suche ich nach " .+\R(.+)" und ersetze es durch " $1". Doch was bedeutete das?

  • " .+" sucht ein beliebiges Zeichen " ." in beliebiger Anzahl " +"
  • " \R" sucht einen Zeilenumbruch jeglicher Art. Es gibt ja " \n" (neue Zeile) und " \r" (Return) und das auch in Kombination " \n\r". Je nach Kodierung der Datei. Dies alles wird mit " \R" berücksichtigt

Damit hätten wir die erste komplette Zeile “markiert”. Jetzt folgt die Zweite.

  • " .+" um die komplette nächste Zeile zu markieren, denn davor war ja der Zeilenumbruch
  • " ()" dieser Teil ist in Klammern, damit er in die temporäre erste Variable geschrieben wird.

Und genau damit wird dann das alles ersetzt. D.h. nur die zweite Zeile bleibt übrig. Ihr habt es natürlich schon erfasst. Ich wollte den Usernamen, d.h. nur die erste Zeile behalten. Somit ist der richtige Suchausdruck " (.+\R).+\R". Diesmal müssen beide Zeilenumbrüche mit aufgenommen werden, damit beide durch eines ersetzt wird.

Und zu guter Letzt. Wie ihr euch denken könnt, könnte man damit auch beide Zeilen untereinander vertauschen. Man klammert beide Ausrücke und hat damit zwei Variablen die man im “Ersetzen” Feld in umgekehrter Reihenfolge ausgibt.

Und das kann man für eine beliebige Anzahl an Zeilen weiterführen.

Das war’s. Wenn ihr noch Fragen habt, einfach ein Kommentar hinterlassen oder per Twitter.

Möge die Macht mit euch sein.

[ via]