Suchen mit Notepad++

Einer der beliebtesten Texteditoren ist Notepad++. Allerdings werden einige sehr praktische Funktionen von vielen Anwendern übersehen oder diese Funktionen erschließen sich nicht auf den ersten Blick.

Das Zeilenende

Manch einer hat sich womöglich schon einmal darüber gewundert, dass ein und die selbe Textdatei plötzlich aus unerfindlichen Gründen unterschiedliche Größen hat. Der Grund ist eigentlich ganz einfach: die unterschiedlichen Betriebssysteme codieren das Zeilenende unterschiedlich

  • Window setzt 2 Zeichen CR+LF
  • UNIX/Linux bzw. Macintosh aber nur eins, LF oder CR

So kann es vorkommen, dass Programmdateien beim Hochladen zum Webspace oder beim Herunterladen von dort umcodiert werden und so ihre Größe ändern. Mit Notepad++ kann man diesen Prozess direkt steuern, denn unter Bearbeiten>>Format Zeilenende kann man die jeweils verwendete Kodierung ändern.

Bei einer im Windows-Stil mit CR+LF kodierten Datei sieht es zunächst so aus (die aktive Zeilenendecodierung ist angegraut):

Man klickt dann auf Unix (LF). Beim nächsten Mal ist Unix (LF) angegraut.

Außerdem sieht man durch das rot gefärbte Icon links oben, dass die Datei geändert wurde und noch gespeichert werden muss.

Leerzeilen

Oftmals enthält Programmcode eine Reihe von Leerzeilen, die man eliminieren möchte. Notepad++ hat hierfür eine extra Bearbeitungsfunktion. Man findet sie sie unter Bearbeiten>>Zeilenoperationen>>Leerzeilen (nur völlig leere) löschen oder Bearbeiten>>Zeilenoperationen>>Leerzeilen (auch mit Whitespace) löschen.

Das geschieht dann natürlich in der ganzen Datei. Wenn man aber nur bestimmte Leerzeilen löschen will oder Leerzeilen in mehreren Dateien (z.B. alle in einem Verzeichnis) löschen will, dann bietet sich die erweiterte Funktion zum Suche und Ersetzen an. Textdateien mit einer Unix-(Linux-)Codierung haben LF als Zeilenendecodierung. Dieses Zeichen wird häufig auch mit LF abgekürzt. Im erweiterten Suchmodus von Notepad++ kann man nach den Zeilenendecodes suchen. Für eine Unix-codierte Textdatei verwendet man das Kürzel \n. Wenn man nun dieses Kürzel im Suchfeld eingibt und das Ersetzenfeld leer lässt kann man so alle Zeilenumbrüche aus einer Textdatei entfernen. Um Leerzeilen zu entfernen (die Leerzeilen müssen wirklich leer sein, ohne Leerzeichen), setzt man einfach \n\n ins Suchfeld und nimmt zum Erstzen \n. Nun kann man gezielt Leerzeilen löschen (oder bestehen lassen).

Suchen und Ersetzen mit regulären Ausdrücken

Beispiel 1

Text

<i>hier</i> und <i>da</i>
<i>hier</i> und <b>da</b>
<div>hier</div> und <i>da</i>

Suchstring

<i>(.*)</i>

Beispiel 2

Text

<i>irgendein</i> <b>Text</b>

Suchen

<i>(.*?)</i> <b>(.*?)</b>

Ersetzen

<b>(\1)</b> <i>(\2)</i>

Ergibt

<b>irgendein</b> <i>Text</i>

vertauscht also die Tags

Beispiel 3

Text

<li><a href="/eigenname1s/index_b2.html">eigenname1</a></li>
<li><a href="/eigenname2/index_b1.html">eigenname2</a></li>
<li><a href="/eigenname3/index_b0.html">eigenname3</a></li>
<li><a href="/eigenname4/index_b017.html">eigenname4</a></li>

Suchen

<li><a href="(.*)">(.*)</a></li>

Ersetzen 1

\2

Ergibt

eigenname1
eigenname2
eigenname3
eigenname4

Ersetzen 2

<li>\2</li>

Ergibt

<li>eigenname1</li>
<li>eigenname2</li>
<li>eigenname3</li>
<li>eigenname4</li>

Beispiel 3

Text

Tag: PHP
Tag: PHP, Fehler, BPGS
Tag: telepolis, internet, el-salvador

Suchen

Tag:(.*)

Ersetzen 1

Tag:\1,neuer Tag

Ergibt

Tag: PHP,neuer Tag
Tag: PHP, Fehler, BPGS,neuer Tag
Tag: telepolis, internet, el-salvador,neuer Tag

Achtung!. Bei den hier beschriebenen Beispielen muss natürlich immer im Suchmodus die Option Reguläre Ausdrücke  ausgewählt sein. Außerdem ist die dort noch zu findende Zusatzoption . findet \r und \n zu beachten. Je nachdem ob sie aktiviert ist oder nicht können sich die Ergebnisse unterscheiden. Es ist also in jedem Fall ratsam, die Ergebnisse (vor allem beim Ersetzen) ausführlich zu kontrollieren. Gegebenenfalls sollte man eine Sicherungskopie der zu bearbeitenden Datei erstellen.