Doppelte Genre löschen


#1

Guten Tag,

ich benötige Hilfe.
wie kann ich im Tag Genre am Besten doppelte Einträge, getrennt durch ein Semikolum, per Batch löschen. Manuell ist dies sehr aufwändig, da ich eine größere Sammlung bereinigen möchte.

Danke


#2

Bitte ein praktisches Beispiel zeigen.
Sollen wirklich beide Genre Einträge gelöscht werden?
Oder soll ein Eintrag erhalten bleiben?
Handelt sich bei dem Tag-Feld GENRE um ein Multi-Value Tag-Feld oder um ein normales Tag-Feld?
Was steht in der Spaltendefinition der Listenansicht für das Tag-Feld Genre in der Zeile "Wert"?

Konverter: Tag - Tag ... oder ... Aktion: Tag-Feld formatieren
Feld: GENRE
Formatstring: $regexp(%GENRE%,'^(.+?)\s*;\s*\1$','$1')
Von:
Rock;Rock
Rock ;Rock
Rock; Rock
Rock ; Rock
Nach:
Rock

... oder ...

Anfang Aktionengruppe Test_2013#20130105.GENRE

Aktion #1
Aktionstyp 16: Tagfelder aufteilen
Feld _______: GENRE
Trennzeichen: ;

Aktion #2
Aktionstyp 5: Tagfeld formatieren
Feld _______: TEMP
Formatstring: $meta(GENRE,0)

Aktion #3
Aktionstyp 9: Tagfelder entfernen
Folgende Tagfelder entfernen (mit Semikolon getrennt): GENRE

Aktion #4
Aktionstyp 5: Tagfeld formatieren
Feld _______: GENRE
Formatstring: %TEMP%

Aktion #5
Aktionstyp 9: Tagfelder entfernen
Folgende Tagfelder entfernen (mit Semikolon getrennt): TEMP

Ende Aktionengruppe Test_2013#20130105.GENRE (5 Aktionen)

... oder ...

Siehe auch:
Merging several Tag Fields into CONTENTGROUP

$trim($regexp(%GENRE%,'(?:(?<=;)|(?<=\A))\s?([^;]*);(?=.*?(?<=;)\s?\1(?=;|\Z))',,1))

Von:
Rock;Jazz;Rock;Pop;Jazz
Nach:
Rock;Pop;Jazz

DD.20130105.1924.CET


#3

Hi DetlevD

Danke für die schnelle Antwort

Nur ein Genre von den Doppelt vorhandenen soll gelöscht werden.

Feld: %genre%
Wert: $meta_sep(genre,\\)

Das funktioniert wunderbar.
Nun nur noch eine Frage. Wie kann ich diese Funktion auf eine Hotkeytaste legen? Am besten wäre es, wenn vorher in MP3Tag noch alles markiert (ausgewählt) wird. Also quasi eine Automation zu Löschen alle doppelten Genre Einträge.
Ein Eintragen des Strings unter Extras/Optionen/Tag Panel/Standardwerte/Genre hat nicht geholfen die doppelten Genre-Tags bein Speichern zu löschen.

Danke


#4

... also gibt es tatsächlich immer nur zwei dieselben Genre Namen im Tag-Feld und nicht noch weitere?

Das bestätigt, dass du hier in deiner Anfrage keine multi-value GENRE Tag-felder benutzt hast, sondern ein einfaches GENRE Tag-Feld, das eine Zeichenkette mit zwei Genre Namen enthält, die mit einem Semikolon verbunden sind.

Hm ... vielleicht ... Funktion auf Papier drucken und dann das Papier auf eine Hotkeytaste legen? :wink:

Am Besten ist es, wenn vorher (wann ist das genau ... vorher?) gar nichts automatisch ausgewählt wird.
Das Einschalten des eigenen Gehirns ist auf jeden Fall erforderlich, denn wer sollte bei Fehlbedienung sonst die Konsequenzen übernehmen?

Da hast du wohl am falschen Platz die falsche Handlung ausgeführt ... so etwa wie beim legendären VW Käfer ... vorne den Deckel aufgemacht ... oh, der Motor ist weg ... hinten aufgemacht ... oh, der Kofferaum ist auch schon voll.
So musst du wohl noch etwas lernen wie Mp3tag funktioniert.
Benutze die Mp3tag Konverter und die Aktionen. Im Beitrag #2 wurde das schon demonstriert.

DD.20130106.1540.CET


#5

Ja, Du hast Recht.

Ja, das stimmt. Ich kenne MP3Tag jetzt erst seit 2 Tagen. Vorher habe ich ID3-TagIT und Mediamonkey benutzt. Leider bin ich da an gewisse Grenzen gekommen. Ich habe mich jetzt etwas eingearbeitet.
Dank Deiner Hilfe bin ich schon weiter gekommen. Über Aktionsgruppen geht das Bearbeiten der Tag's ganz gut.

Ein Wunsch hätte ich noch. Wie kann man den Script:

$trim($regexp(%GENRE%,'(?:frowning:?<=:wink:|(?<=\A))\s?([^;]);(?=.?(?<=:wink:\s?\1(?=;|\Z))',,1))

so erweitern, das auch Einträge im Genre kleiner/gleich zwei Zeichen gelöscht werden? In der Programmierung bin ich eine Null.

Danke für Deine Mühe


#6

Nach dem ersten Schritt, dann der zweite Schritt ...
Konverter: Tag - Tag ... oder ... Aktion: Tag-Feld formatieren
Feld: GENRE
Formatstring: $ifgreater($len(%GENRE%),2,%GENRE%,)

DD.20130106.1744.CET


#7

Habe ich gleich probiert. Hm, da wird bei mir nichts bereinigt. Im Genre-Feld stehen nach der Aktion neben den normalen Genres dann immer noch Genres mit ein oder zwei Zweichen. Diese kurzen Genres sagen nicht viel aus und die möchte ich loswerden. Der Trenner zwischen den Genres ist ein Semikolum.


#8

Ok, das ist also ein anderer Fall als zuvor beschrieben.
Bitte zeige ein allgemein gültiges Musterbeispiel.

DD.20130106.1830.CET


#9

Genre vorher: Pop; Rock; w; it; 1; Sampler;q;i ;

nach Bereinigung: Pop; Rock; Sampler


#10
Anfang Aktionengruppe Test_2013#20130106.muehli.GENRE

Aktion #1
Aktionstyp 5: Tagfeld formatieren
Feld _______: GENRE
Formatstring: %GENRE%';'

Aktion #2
Aktionstyp 5: Tagfeld formatieren
Feld _______: GENRE
Formatstring: $regexp(%GENRE%,'(?:(?<=;)|(?<=\A))\s?([^;]);(?=.?(?<=;)\s?\1(?=;|\Z))',,1)

Aktion #3
Aktionstyp 5: Tagfeld formatieren
Feld _______: GENRE
Formatstring: $regexp(%GENRE%,'(?:(?<=;)|(?<=\A))\s?([^;]{1,2});',,1)

Aktion #4
Aktionstyp 5: Tagfeld formatieren
Feld _______: GENRE
Formatstring: $trim(%GENRE%,' ;')

Ende Aktionengruppe Test_2013#20130106.muehli.GENRE (4 Aktionen)

... oder so ...

Anfang Aktionengruppe Test_2013#20130106.muehli.GENRE (1)

Aktion #1
Aktionstyp 5: Tagfeld formatieren
Feld _______: GENRE
Formatstring: $regexp(%GENRE%,'(?:(?<=;)|(?<=\A))\s?([^;]);(?=.?(?<=;)\s?\1(?=;|\Z))',,1)

Aktion #2
Aktionstyp 5: Tagfeld formatieren
Feld _______: GENRE
Formatstring: $regexp(%GENRE%,'(?:(?<=;)|(?<=\A))\s?([^;]{1,2})\s?(?:;|\Z)',,1)

Aktion #3
Aktionstyp 5: Tagfeld formatieren
Feld _______: GENRE
Formatstring: $trim(%GENRE%,' ;')

Ende Aktionengruppe Test_2013#20130106.muehli.GENRE (1) (3 Aktionen)

Von:
a; bc; Pop; Rock;Rock; w; it; 1; Sampler;q;i ; Rock; Pop; xy; z
ab;c; Pop; Rock;Rock; w; it; 1; Sampler;q;i ; Rock; Pop; x; yz;
Nach:
Sampler; Rock; Pop
(alphabetisches Sortieren ist derzeit nicht möglich)

DD.20130106.2020.CET
Edit.DD.20130108.1200.CET


Merge duplicate words
#11

Hi, DetlevD,

das funktioniert wie gewünscht.

Danke


#12

Einen kleinen Schönheitsfehler hat die Aktion noch. Es werden nicht die Einträge am Ende des Genre-Tag's gelöscht, wenn diese nur ein oder zwei Zeichen haben.


#13

Das Muster "Semikolon-Blnak-beliebiges Zeichen am Datensatzende" kannst du durch "nichts" ersetzen mit der Aktion
"Ersetzen mit regulärem Ausdruck"
Suche-String: ; .;$
Ersetzen-String:
(nichts, leer lassen)

Für 2 beliebige Zeichen: ; ..$


#14

Hi ohrenkino,

das Löschen klappt bei mir nicht mit den Suchstring "Ersetzen mit regulärem Ausdruck" ; ..$ oder auch ; ..;$

hier ein Beispiel, wie es sein sollte:

Genre vorher: Southern; Blues; L2

                 Southern; Blues; L

Genre nachher: Southern; Blues

Im Beitrag #10 ist schon beschrieben, wie ich die Genre mit ein oder zwei Zeichen löschen kann. Nur funktioniert das leider nicht am Satzende.


#15

Änderung siehe ...
Doppelte Genre löschen

DD.20130108.1136.CET


#16

Ja, Danke

jetzt werden auch am Ende das Satzes die ein oder zwei Zeichen entfernt