GREP-Ersetzungen automatisieren

In der Praxis ist es oftmals schneller, mehrere einfache GREP-Ersetzungen zu formulieren und hintereinander auszuführen, als lange an einer komplexen Abfrage zu feilen. Wenn die Aufgabe wiederholt ausgeführt werden soll, ist es jedoch mühsam, die einzelnen Abfragen immer wieder herauszusuchen und hintereinander auszuführen.

Ein Skript zur Hilfe

Eine typische Aufgabe für ein Skript – allerdings kann nicht jeder aus dem Stand ein Skript programmieren. Diese Aufgabe erledigt mein kostenloses Skript ChainGREP.jsx: Mit ChainGREP kannst du ein neues Skript erstellen, das mehrere Abfragen hintereinander laufen lässt.

Wie geht das?

1. Abfragen erstellen

Der erste und wichtigste Schritt ist, die einzelnen GREP-Abfragen im Suchen/Ersetzen-Dialog zu speichern. Dazu erstellst du einfach den gewünschten GREP, ggfs. inklusive der Formateinstellungen, und sicherst ihn mit dem Klick auf das Festplattensymbol. Der Namen sollte die Aufgabe des GREPs möglichst gut beschreiben und wird später für die Auswahl der Abfragen benötigt.
GREP-Abfrage speichern

2. Skript herunterladen

Nach dem Download des Skripts musst du das Skript installieren. Wenn du das noch nicht gemacht hast, empfehle ich eine längere Installationsanleitung  auf deutsch oder englisch. Als kurze Erinnerung, es ist ganz einfach: Bedienfeld Skripte öffnen; Rechte Maustaste und Im Finder/Explorer öffnen wählen; Skript in den Ordner Scripts Panel kopieren; Fertig.

3. Skript aufrufen

Nach dem Aufruf des Skripts aus der Skriptpalette per Doppelklick erscheint ein Dialog, in dem alle GREP-Abfragen von InDesign angezeigt werden.

Chain GREP Dialog

Die Liste kann komplett in einem Skript gespeichert werden. Meistens will man aber nur eine gewisse Auswahl an Abfragen hintereinander ablaufen lassen. Dazu kannst du mit Remove Abfragen aus der Auswahl entfernen und die Liste mit den Tasten Up bzw. Down sortieren. Nachdem du deine Auswahl getroffen hast, musst du noch den Suchbereich für das neues Skript im Bereich Scope of Find/Change festlegen. In den meisten Fällen ist die Suche im gesamten Dokument eine gute Wahl.
Nun musst du noch den Namen für das zu speichernde Skript eintragen.

Abschließend drückst du auf Save List und das neue Skript wird im Unterordner FindChangeScripts, der neben dem Skript erstellt wird, gespeichert.

Bedienfeld Skripte

Leider erscheint das Skript unter InDesign CC nicht immer automatisch, manchmal muss man das Skripte-Bedienfeld einmal schließen und wieder öffnen. Dann wird das neue Skript aber sicher angezeigt.

Das neue GREP-Skript kann jetzt widerum per Doppelklick aufgerufen werden. Im Skript werden die Abfragen mit allen Einstellungen abgespeichert. Das heißt, du kannst das Skript auch an einem anderen Computer verwenden, an dem die Abfragen nicht installiert sind. Dies bedeutet aber auch, dass bei einer Veränderung der ursprünglichen GREP-Abfrage das Skript neu erstellt werden muss.

Oder doch lieber selber schreiben?

Wer doch lieber sein eigenes Skript schreiben möchte, dem sei das Probekapitel Suchen und Ersetzen per Skript aus meinen Buch InDesign automatisieren empfohlen. In dem Buch gibt es auch einen umfassenden Überblick über die Suche und Ersetzung mit GREP.

Zum Schluß noch vielen Dank an Peter Kahrel, der mir mit seinem Skript GREP query manager die Idee zu diesem Skript geliefert hat.

2 Kommentare

  1. Hi, thank you for this powerfull script. Performance are better than the classic FindChangeByList.
    I’ve trouble when using the „User Choice“ Parameter. The script run an alert box with this message : „ReferenceError: changeObject is undefined“. (One alert Box for each Regex in the script). Do you know how I can fix it ? Thank you in advance,

    Jean loup

  2. Do you use the current version?
    I updated the script in this area a few weeks ago. If so, can you please provide me the script via e-Mail or Download-Link.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.