CR - LF Operationen

#1

Durch eine zeitweilig fehlerhaft arbeitende Websource-Software habe ich im Tag-Feld UNSYNCEDLYRICS zu viele CR-LFs.
Die Software hat in jede Songzeile ein zusätzliches CR-LF eingefügt und bei den Strophenwechseln 2 zusätzliche CR-LFs.

Zunächst möchte ich daher diese fehlerhaften Dateien herausfiltern, wobei sich da wohl nur die Filterung nach 4 CR-LFs in Folge eignet.
Somit würden Songtexte ohne Strophen wohl leider nicht eindeutig herausgefiltert werden können.

Anschließend würde ich in diesen gefilterten Dateien gerne folgende Ersetzungen vornehmen:

CRLFCRLFCRLFCRLF -> CRLFCRLF
und
CRLFCRLF -> CRLF

Machbar? Und wie geht man da am besten vor?

#2

Ich meine, dass du die 4-fach-CRLFs durch ein Metazeichen ersetzen musst, z.B: #
Dann ersetzt du alle 2-fach-CRLFs durch 1 CRLF und dann alle # durch 2x CRLF.
Dann müsste es wieder stimmen.

#3

Und wie filtere ich nach 4 aufeinanderfolgenden CRLFs?

#4

"$ifgreater($strstr(%unsyncedlyrics%,$char(13)$char(10)$char(13)$char(10)$char(13)$char(10)$char(13)$char(10)),0,yes,no)" IS yes

#5

Danke.
Während Du nachgedacht hast habe ich auch nachgedacht. :wink:
Es geht wohl auch:
unsyncedlyrics MATCHES \r\n\r\n\r\n\r\n

#6

Es war doch wesentlich einfacher:

  1. Filtern: unsyncedlyrics MATCHES \r\n\r\n\r\n\r\n

  2. Aktion:
    Typ: Ersetzen mit regulärem Ausdruck
    Feld: UNSYNCEDLYRICS
    Regulärer Ausdruck: \r\n\r\n
    Ersetzen: \r\n

#7

Naja - dann muss man sicherstellen, dass man die Ersetzen-Aktion nicht (aus Versehen) 2x laufen lässt. Sonst hast du am Ende nur noch einzelne CR-LF.