Nummerierung im Buchtitel in Serienindex übernehmen

Hin und wieder kommt es vor, dass beim Import von eBooks in Calibre die Seriennummerierung im Titel und nicht im dafür vorgesehenen Serienindexfeld des eBooks steht. Das sorgt nicht gerade für Übersicht im Programm und verkompliziert die Verwaltung etwas.  Also warum nicht diese schon vorhandenen Informationen nutzen, um sie in das richtige Feld einzutragen?

serienindex_vorher

Die Lösung ist etwas knifflig, daher stelle ich sie hier einmal vor. In Calibre gibt es eine Möglichkeit, Texte oder Teilstücke aus Texten aus verschiedenen Feldern zu durchsuchen, irgendetwas mit ihnen zu machen und sie in das gleiche oder andere Felder zu kopieren.

In meinem Beispiel habe ich eine ganze Latte mit Titeln, die diesem Muster folgen:

008 - Das geheimnisvolle Haus

Also zunächst eine dreistellige Nummer, gefolgt von einem Leezeichen, einem Bindestrich, noch einem Leerzeichen und dem eigentlichen Titel des Buches. Die dreistellige Nummer möchte ich nun als Serienindex festlegen.

Such- und Ersetzoptionen festlegen

Also markiere ich zunächst alle Bücher und klicke auf das zweite Symbol von links in der Symbolleiste. Es öffnet sich der Dialog zum mehrfachen Bearbeiten der Meta-Informationen. Dort wechsle ich auf die Registerkarte “Suchen und Ersetzen”:

suchen-und-ersetzen

Ich möchte, dass Calibre die Ziffern am Anfang des Titels findet. Weil es sich beim gewünschten Suchausdruck um einen regulären Ausdruck handelt, stelle ich das zunächst bei “Suchmodus” ein:

suchmodus_regulare_ausdruecke

Damit Calibre nur in den Titeln der gewählen Bücher nach dem folgenden Ausdruck sucht, stelle ich zunächst das Suchfeld (1) auf “title” um. Danach trage ich im Feld “Suchen nach” (2) folgendes ein:

0*(\d+) - .*

suchen-und-ersetzen_suchen

Diese kryptische Zeichenfolge macht folgendes: Sie sucht zuerst nach beliebig vielen Nullen (erster Ausdruck: 0*), danach nach beliebig vielen Ziffern (zweiter Ausdruck: (\d+)), dann nach einem Bindestrich, der mit Leerzeichen umschlossen ist (dritter Ausdruck: – ) und zum Schluss nach beliebig vielen Zeichen (vierter Ausdruck: .*).

Wichtig für diesen Anwendungsfall ist nur der zweite Ausdruck. Weil er von runden Klammern umschlossen ist, können alle gefundenen Stellen in dasselbe oder ein anderes Feld kopiert werden. In unserem Fall betrifft dies nur die Ziffern 1-9, weil die führenden Nullen außerhalb der Klammern stehen. Ins Feld “Ersetzen durch”(3) muss nun noch folgendes eingetragen werden:

\1

suchen-und-ersetzen_ersetzen

Und damit die Ziffern im Serienindex landen, muss “series_index” ins Zielfeld (4) eingetragen werden.

Vorm Ausführen überprüfen

Um sicherzugehen, dass mein Suchausdruck funktioniert und auch die richtige Werte übernimmt, kann ich beides über die Vorschau am unteren Bildschirmrand überprüfen:

suchen-und-ersetzen_ergebnis

Links (5) stehen die gegebenen Werte und rechts das Ergebnis (6). Im ersten Feld kann ich einen eigenen Text eintragen, um beispielsweise zu testen, ob der Suchausdruck auch mit mehrstelligen Zahlen funktioniert.

Suche speichern

Wenn die Vorschau passt, speichere ich mir die eben gesetzten Einstellungen mit einem aussagekräftigen Namen ab, um später immer wieder drauf zurückgreifen zu können.

suchen-und-ersetzen_speichern

Suchen und Ersetzen ausführen

Anschließend lasse ich die Einstellungen per “OK” oder “Anwenden” über meine eingangs markierten Bücher laufen. Das Ergebnis sieht dann so aus:

serienindex_nachher

4 Gedanken zu „Nummerierung im Buchtitel in Serienindex übernehmen“

  1. Und im nächsten Schritt werden die Serieninformationen aus dem Titel rausgeworfen, denn dort haben sie nichts zu suchen. Die korrekte Reihenfolge auf dem Reader löst man besser mit der Metadatenschalttafel. :)

    Antworten
  2. Und wie gehe ich vor, wenn auch der Serien-Name im Titel steht und ins Feld Serie eingetragen werden soll?
    Der Titel ist z.B.:
    “Am Nil 01 – Der Traum der Sonne: Historischer Roman”

    Versucht habe ich jetzt

    Suchfeld: Titel
    suchen nach: ([\w ]+) (?=[0-9])
    ersetzen durch: \1
    Zielfeld: Serie

    Dabei wird aber der ganze Titel ins Feld Serie eingetragen.

    Antworten
    • Versuch es mal mit:

      Suchfeld: titel
      Suchen nach: (.*) 0*(\d+) – .*
      Ersetzen durch: \1 [\2]
      Zielfeld: Serie

      Das Leerzeichen nach der ersten Klammer, im Feld “Suchen nach:” ist wichtig!

      Antworten

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.