Filtern anpassen

hallo members

könnte mir jmd helfen wie ich den filter einstellen muss um alle datein anzeigen zu lassen, die in einen ordner mit einem cd 1, disk1 usw im im namen des verzeichnis-ordners sind?

hab bisher noch nicht hinter die funktionsweise des filters blicken können.

und desweiteren wie folgende aktion aussehen würde.
jeden inhalt einer ( ) und [ ] samt der klammern löschen.

hab diesbezüglich einige aktionen probiert, aber keine hat bisher funktioniert.

schonmal danke im voraus.

1:
%_directory% MATCHES (cd|disc|disk)

oder, wenn auch das Vorhandensein einer Zahl ein Kriterium ist:
%_directory% MATCHES (cd|disc|disk)\s*\d+

2:
Aktion: Ersetzen mit regulärem Ausdruck
Feld: musst du wissen
Regulärer Ausdruck: \s*((|[).+?()|])
Treffer ersetzen durch:

Ich strebe eine einheitliche Schreibweise für cd|disc|disk an. Es soll stets so aussehen:
, CD 1
, CD 2
usw.

Ich benutze $replace in 2 Schritten:
1.
$replace(%album%,cd 1,CD 1,cD 1,CD 1,Cd 1,CD 1,cd-1,CD 1,cD-1,CD 1,Cd-1,CD 1,CD-1,CD 1,cd1,CD 1,cD1,CD 1,Cd1,CD 1,CD1,CD 1,disk1,CD 1,Disk1,CD 1,disc1,CD 1,Disc1,CD 1,disk 1,CD 1,Disk 1,CD 1,disc 1,CD 1,Disc 1,CD 1)
2.
$replace(%album%, - CD 1 -,',' CD 1, CD 1,',' CD 1, (CD 1),',' CD 1, '['CD 1']',',' CD 1,)

... und das dann anschließen für CD 2 usw.
Gibt es da elegantere Möglichkeiten?

Das hier deckt alle von dir genannten Fälle ab:

$regexp(%album%,'(\s|-|[|(|,)(cd|disc|disk)(\s|\W)(\d+)(\s|\W)*',', CD $4',1)

Ein Schritt und für beliebig viele CDs gleichzeitig.

Perfekt! Danke für die schnelle Anwort. Wie müßte man es abändern, wenn "disk" in der Mitte steht?

Aus: Selected Works Disc 2, The Fast Lane
wird: Selected Works, CD 2The Fast Lane

Es soll aber sein: Selected Works, CD 2, The Fast Lane

$regexp($regexp(%album%,'(\s|-|[|(|,)(cd|disc|disk)(\s|\W)(\d+)(\s|\W)',', CD $4',1),(CD \d)(\s|\W)(.+),'$1, $3')

Funktioniert für für beide Fälle, mit und ohne Zusatztitel nach CD x.

EDIT:
nach (CD steht ein Leerzeichen. Das wird zumindest bei mir im Forum nicht angezeigt, weil dort der Zeilenumbruch ist. Bei Kopieren u Einfügen ist es aber noch da.

Danke! Ist schon perfekt! Einmalig!

Wirklich! Ich benutze es immer wieder.

Ich habe die Aktion über meine umfangreiche Hörbuch-Sammlung laufen lassen und dabei übersehen, dass der Formatstring $regexp($regexp(%album%,'(\s|-|[|(|,)(cd|disc|disk)(\s|\W)(\d+)(\s|\W)',', CD $4',1),(CD \d)(\s|\W)(.+),'$1, $3')nur für einstellige CD-Zahlen geeignet ist. Leider sind in meiner Hörbuch-Sammlung auch viele zweistellige CD-Zahlen vorhanden. Dort ist es zu unsinnigen Formatierungen gekommen. Ein "undo" ist wegen der Menge schlecht möglich.

Beispiele für die Ergebnisse:
Mord in Mesopotamien, CD 2, CD
Elfenritter, Band 1 - Die Orden, CD 0, 2, CD
Elfenritter, Band 2 - Die Alben, CD 0, 6, CD
Cave Canem, CD 4, CD 4
070, Schüsse aus dem Dunkel, CD
Die Säulen Der Erde, CD 1, 1, CD 11/12

Ich muss mehr oder weniger "von Hand" an die Reparatur gehen. Filter wie
$right(%album%,3) HAS "CD "
die hilfreich sein könnten, funktionieren nicht. Vieles kann ich anhand der Pfadbezeichnung rekonstruieren.
Ich brauche einen oder mehrere Formatstrings, um aus den obigen Beispielen wieder folgendes zu machen :

Mord in Mesopotamien, CD 2
Elfenritter, Band 1 - Die Orden, CD 02
Elfenritter, Band 2 - Die Alben, CD 06
Cave Canem, CD 4
070, Schüsse aus dem Dunkel
Die Säulen Der Erde, CD 11

Ich sehe mich nicht in der Lage solche komplexen Formatstrings wie oben $regexp... zu entwickeln.

@ pone: Kannst du mir einige Tipps geben?

@ alle: Wie müsste ein Filter aussehen, der eine bestimmte Zeichenfolge am Ende erkennt? Z. B. CD?


edit 2 Stunden später:

Inzwischen habe ich festgestellt, dass der eigentliche Übertäter ein vergessenes Häckchen in einer anderen Aktion war. Formatieren:
%album%, CD %discnumber%
Damit sind alle Beispiele, außer denen mit "... CD 1, 1, " erklärt. Was bleibt, ist die Tatsache, dass der obige Formatstring $regexp... nur für einstellige CD-Zahlen geeignet ist.

vielleicht nützt es was, das (CD \d) durch (CD \d+) zu ersetzen.

Leider nein!

Bei zweistelligen CD-Nummern funktioniert es nicht. Ich bin nicht in der Lage, dieses Script entsprechend zu erweitern. Wer kann mir helfen? Oder werden 2 Scrite gebraucht: eines für 1-stellige und ein anderes für 3-stellige Zahlen?

Bei zweistelligen CD-Nummern funktioniert es nicht. Ich bin nicht in der Lage, dieses Script entsprechend zu erweitern. Wer kann mir helfen? Oder werden 2 Scrite gebraucht: eines für 1-stellige und ein anderes für 3-stellige Zahlen?

Es kommt mir so vor, als könnte das in deinem Sinn funktionieren ... also für den Normalfall, ...
für die Rekonstruktion der vermurksten Namen muss man noch mal schauen ...

ALBUM_NEW <== $regexp(%ALBUM%,'(\s|-|\[|\(|,)*(cd|dis(c|k))(\s|\W)*?(\d+)(\s|-|\]|\))*(.*)',', CD $5$7',1) ... or ... ALBUM_NEW <== $regexp(%ALBUM%,'(?:\s|-|\[|\(|,)*(?:cd|dis(?:c|k))(?:\s|\W)*?(\d+)(?:\s|-|\]|\))*(.*)',', CD $1$2',1)

Testdateien ...
20150805.Test.mbaa3.CD.zip (43.7 KB)
DD.20150805.0954.CEST

20150805.Test.mbaa3.CD.zip (43.7 KB)

Danke, beide Varianten funktionieren.