mod_search

Top  Previous  Next

Beschreibung:

mod_search ist ein Tool zum Suchen und Ersetzen in Textdateien. Es werden -zusätzlich zur normalen Suche- auch reguläre Ausdrücke unterstützt.

Das Ersetzen kann vorab getestet werden.

Die ursprüngliche Kodierung der Dateien wird beim Ersetzen berücksichtigt. Es ist auch möglich, ohne Textersetzung die Kodierung von Dateien  z.B. von UTF-8 nach UTF8-BOM oder umgekehrt zu ändern.

Bei einer Ersetzung oder Konvertierung muss zwingend ein Backupordner angegeben werden, dadurch sind bei einer ungewollten Ersetzung die Daten immer wiederherstellbar.

Es können mehrere Konfigurationen automatisch abgespeichert werden.

Es existiert eine Voransicht für die gefundenen Stellen in der Datei.

 

Sprachen:

Deutsch/Englisch, die Sprache der Bedienoberfläche wird automatisch anhand der Systemsprache beim Programmstart eingestellt.

 

Systeme (nur 64Bit):

Windows ab Windows 10. Download.

Linux (Ubuntu-basierend) ab Ubuntu 22.04 TLS. Download.

 

Installation:

Die Zip-Datei wird in einen beliebigen Ordner entpackt, dies kann auch der Systemprogrammordner sein.

Sofern der Ordner, in dem sich die ausführbare Datei befindet, beschreibbar ist, wird für die Konfigurationsdatei mod_search.conf der aktuelle Ordner verwendet, ansonsten der System-Standardordner für Konfigurationen des aktuellen Benutzers.

Die Konfigurationsdatei kann bei Bedarf auch einfach umkopiert werden, diese enthält alle Einstellungen.

Unter Windows gibt es im Dialog die Einstellung Desktop-Link, mit der ein Link auf dem Desktop angelegt oder entfernt werden kann, über den das Programm gestartet werden kann.

Hinweis: Falls nach dem Start in Windows dll-Dateien nicht gefunden werden, muss die Datei vc_redist.x64.exe ausgeführt werden.

 

Planung für zukünftige Versionen:

Suche in mehreren Ordnern.

Suchen und Ersetzen auf Webservern (SFTP).

Javascript-Unterstützung.

Suchen und Ersetzen in Binärdateien.

 

 

Einstellungen:

Dateinamen: Angabe von Dateifiltern, mehrere Typen werden durch ein Semikolon getrennt, Beispiel:

Beispiel:

*.*

*.cpp;*.h

 

Suchen in: Der Ordner, in dem gesucht werden soll, es können auch Unterordner durchsucht werden.

Hinweis: Derzeit kann nur ein Ordner gleichzeitig durchsucht werden.

 

Suchtext: Der Suchtext, dieser kann auch mehrzeilig sein. Wird kein Suchtext eingegeben, werden alle Dateien gefunden, die mit den Einstellungen unter Dateinamen übereinstimmen.

Hinweis:

Derzeit wird nur die Suche und das Ersetzen in Textdateien unterstützt, andere Dateien werden bei der Suche ignoriert.

Bei Suche mit Suchtext, Ersetzung oder Konvertierung wird die Einstellung Größe/Max ignoriert, die maximale Größe der Textdatei muss unter Max. Textgröße (MB) eingestellt werden.

 

Suchtyp:

a) Normale Suche:

Ganzes Wort: Es werden nur Wörter gefunden, die sich innerhalb von Wortgrenzen (z.B. Leerzeichen, Tab, Zeilenumbruch) befinden, mit der Einstellung Unterstrich ist Wortgrenze kann festgelegt werden, ob ein Unterstrich ebenfalls als Wortgrenze gilt.

Beispiel:

Bei der Suche nach einem ganzen Wort wird haus in hochhaus nicht gefunden.

Bei der Suche nach einem ganzen Wort wird mod in mod_search nur gefunden, sofern die Einstellung Unterstrich ist Wortgrenze aktiviert wurde.

 

Füllzeichen ignorieren:

Zeichen wie Leerzeichen, Tabulator, Zeilenumbruch werden bei der Suche sowohl im Suchtext als auch im Dateiinhalt bei mehrfachem Auftreten ignoriert, es muss nur jeweils ein gemeinsames Vorkommen eines Leerzeichens zwischen Wörtern innerhalb des Suchtextes geben. Diese Einstellung kann den Suchvorgang verlangsamen.

Beispiel:

QToolBar *toolBar=new QToolBar(this);m_addNewButton=new QPushButton(toolBar);m_addNewButton->setText("&Add");

findet

QToolBar *toolBar = new QToolBar(this);

m_addNewButton = new QPushButton(toolBar);

m_addNewButton->setText("&Add");

 

Erweitert: Die Texteingaben \r \n \t im Suchtext werden erweitert zu Wagenrücklauf, Zeilenvorschub, Tabulator.

 

Ende trimmen: Zeichen wie Leerzeichen, Tabulator, Zeilenumbruch werden am Ende des Suchtextes entfernt.

 

b) Wildcard:

Unterstützt werden:

? * [] ! - siehe dazu zum Beispiel.

 

c) Regulärer Ausdruck, Mustererkennung, Siehe dazu.

DME:        QRegularExpression::DotMatchesEverythingOption.

ML:        QRegularExpression::MultilineOption.

EPS:        QRegularExpression::ExtendedPatternSyntaxOption.

IG:        QRegularExpression::InvertedGreedinessOption.

DC:        QRegularExpression::DontCaptureOption.

UP:        QRegularExpression::UseUnicodePropertiesOption.

Capture-Zeichen:

{}

[]

\\

||

Um evtl. Captures im Ersetzen-Text einzufügen, muss der Capture-Index (beginnend bei 1) abweichend vom Standard (\i) in eines der folgenden Zeichenpaare eingefügt werden, dies betrift nicht das Suchwort.

Ansonsten wird Ersetzungstext 'ganz normal' ohne Encoding bestimmter Zeichen eingegeben.

 

Beispiel 1, eingestelltes Capture-Zeichen: {}:

Suchtext:

([a-zA-Z_0-9\.\[\]]+)\.toLower\(\);

Text ersetzen mit:

ToLower({1});

Gefundener Text:

absoluteFilePath = absoluteFilePath.toLower();

Resultat:

absoluteFilePath = ToLower(absoluteFilePath);

 

Beispiel 2, eingestelltes Capture-Zeichen: []:

Suchtext:

([a-zA-Z_0-9\.\[\]]+)\.trimLeft\((.+)\);

Text ersetzen mit:

TRIM_LEFT([1], [2]);

Gefundener Text:

absoluteFilePath = absoluteFilePath.trimLeft(2);

Resultat:

absoluteFilePath = TRIM_LEFT(absoluteFilePath, 2);

 

 

Größe (Bytes, kB, MB, GB): Es kann eine minimale und/oder maximale Größe angegeben werden. Der Wert 0 entspricht keiner Angabe.

Dieser Filter gilt nur für eine generelle Suche ohne Suche nach  Inhalten.

Bei Suche mit Suchtext, Ersetzung oder Konvertierung wird diese Einstellung ignoriert, die maximale Größe der Textdatei muss unter Max. Textgröße (MB) eingestellt werden

 

Datum von, bis: Es kann ein Datumsbereich für das Änderungsdatum der Datei eingegeben werden, dabei entsprechen die Datumswerte 1.1.1970 und 31.12.3000 keiner Eingabe.

 

Text ersetzen mit:

Der Text mit dem der Suchtext ersetzt werden soll, dieser kann auch mehrzeilig sein.

Bei regulären Ausdrücken wird dieser 'ganz normal' ohne Encoding bestimmter Zeichen eingegeben.

 

Leere Eingabe ist gültig: Sofern kein Ersetzen-Text eingetragen wird, wird der Suchtext aus dem Dateiinhalt entfernt.

 

Erweitert: Siehe oben.

 

Konvertierung: Ändert die Textkodierung für eine Datei.

Wichtig: Sofern ein anderer Eintrag als Keine Konvertierung ausgewählt wurde, wird die Datei auch geändert, falls keine Text-Suche eingestellt wurde.

Eine Änderung findet in diesem Fall nur statt, falls sich der ursprüngliche und der neue Textinhalt der Datei unterscheiden.

Wird zusätzlich eine Text-Suche eingestellt, wird die Konvertierung nur ausgeführt, falls der Suchtext gefunden wird.

 

Sicherungsordner: Falls eine Ersetzung oder eine Änderung der Textkodierung stattfinden soll, muss zuvor ein Sicherungsordner angegeben werden, dieser darf kein Unterordner des Suchordners (Suchen in) sein.

Die Originaldatei wird erst geändert, nachdem im Sicherungsordner eine Kopie der Orignaldatei erfolgreich abgelegt  wurde.

Bei jedem neuen Ersetzen-Vorgang wird im Sicherungsordner ein Unterordner mit Datums- und Zeitangabe angelegt, (z.B. 07.02.2023-11.08.03), in dem für die Kopien der Originaldatei die gleichen Unterordner wie im Suchordner angelegt werden.

Sollte es zu einer ungewollten Ersetzung kommen, kann der vorherige Zustand jederzeit durch Umkopieren des Ordners in den Suchordner umgekehrt werden.

 

Suche: Startet die Suche.

 

Ersetzen: Startet die Ersetzung/Konvertierung.

 

Treffer berechnen: Berechnet die Anzahl aller gefundenen Textstellen in einer Datei, bricht ansonsten nach dem ersten Treffer ab.

Bei vielen  Vorkommen kann dies den Suchvorgang verlangsamen.

 

Einstellungen: Mit dem Schalter Neu kann für die aktuellen Einstellungen eine neue Konfiguration angelegt werden.

 

Deskop-Link: Siehe Installation.

 

Suchergebnisse prüfen, Ersetzung testen:

Fall ein Suchtext angegeben wurde, erscheint bei einem Klick auf einen Eintrag in der Trefferliste ein zusätzliches Textfenster, in dem durch alle Treffer navigiert werden kann.

Mit der Einstellung Quelltext verbergen, kann das Fenster deaktiviert werden.

Der Schalter Ersetzen testen erzeugt eine temporäre Datei, in der die gefundenen Stellen ersetzt wurden.

Sofern eine Systemverknüpfung mit der Endung .csv besteht wird (i.d.R. notepad unter Windows), wird dann der Texteditor mit dem Text geöffnet.