# Wie kann man ein "multiline YEAR" reduzieren,

**URL:** https://community.mp3tag.de/t/wie-kann-man-ein-multiline-year-reduzieren/13494
**Category:** Allgemein
**Created:** [May 29, 2012, 6:24am UTC](https://community.mp3tag.de/t/wie-kann-man-ein-multiline-year-reduzieren/13494 "2012-05-29T06:24:42Z")
**Posts on this page:** 12
**Page:** 1

<div class="post-metadata">

### Author: ![LyricsLover](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/l/c6cbf5/32.png) [@LyricsLover](https://community.mp3tag.de/u/LyricsLover)
#### Post date: [May 29, 2012, 6:24am UTC](https://community.mp3tag.de/t/wie-kann-man-ein-multiline-year-reduzieren/13494/1 "2012-05-29T06:24:42Z")

</div>

Wenn ich das Tag-Feld YEAR im Tag-Panel wie folgt dargestellt bekomme:

```
2003\\\\2003gehe ich davon aus, dass das ein Multiline-Feld ist, richtig?

```

Gucke ich mit ALT-T (Erweiterte Tags), dann zeigt es mir YEAR 2003

```
YEAR 2003an.

```

Wie kann ich aus diesen 2 Feldern (oder einem Multiline-Feld) nun ein einziges "normales", numerisches Jahresfeld mit 4 Zahlen extrahieren? In diesem Beispiel also 2003.

Meine bisherigen Versuche scheitern, inkl. dem regulären Ausdruck \d{1,4}(?=\\)Wie könnte ich ein solches Feld möglichst automatisch mit einer Aktion bereinigen?

---

<div class="post-metadata">

### Author: ![DetlevD](https://community.mp3tag.de/user_avatar/community.mp3tag.de/detlevd/32/123_2.png) [@DetlevD](https://community.mp3tag.de/u/DetlevD)
#### Post date: [May 29, 2012, 6:42am UTC](https://community.mp3tag.de/t/wie-kann-man-ein-multiline-year-reduzieren/13494/2 "2012-05-29T06:42:42Z")

</div>

> [@LyricsLover](#):
>
> ... Wie kann ich aus diesen 2 Feldern (oder einem Multiline-Feld) nun ein einziges "normales", numerisches Jahresfeld mit 4 Zahlen extrahieren? In diesem Beispiel also 2003.

Du meinst ein "Multi-Value Field" ("mehrwertiges Tag-Feld" oder "multiples Tagfeld").  
YEAR=2003  
YEAR=2004  
... zum Beispiel dargestellt als "2003\\2004".

Die Aktion "Doppelte Tag-Felder zusammenfassen" bringt die mehreren Werte in eine Zeile, zum Beispiel ... "2003#2004".  
Dann kann man mit der Skriptsprache weitere Bearbeitungen vornehmen.

Siehe auch Manual "Skriptbefehle/Funktionen für Metadaten (inkl. multiple Tagfelder)" ...  
$meta(YEAR,0) liefert den ersten Eintrag, zum Beispiel "2003".

Als Aktion "Tag-Feld formatieren" ...  
Feld: YEAR  
Formatstring: $meta(YEAR,0)

DD.20120529.1042.CEST

---

<div class="post-metadata">

### Author: ![LyricsLover](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/l/c6cbf5/32.png) [@LyricsLover](https://community.mp3tag.de/u/LyricsLover)
#### Post date: [May 29, 2012, 8:11am UTC](https://community.mp3tag.de/t/wie-kann-man-ein-multiline-year-reduzieren/13494/3 "2012-05-29T08:11:27Z")

</div>

Danke für die Rückmeldung. Entweder verstehe ich Dich nicht ganz oder das funktioniert bei mir nicht.

Versuch bitte mal folgendes:  
Tippe bei einem Song im Feld Year den folgenden Wert ein: 2003//2003und speichere diese Angaben in den Song. Du solltest mit ALT-T zwei Einträge für YEAR sehen, beide male mit 2003 als Wert.

Der Formatstring $meta(YEAR,0) scheint damit aber nichts zu machen. Mindestens sehe ich keinen sichtbaren Unterschied.

Aber dank Deiner Info mit dem "Doppelte Tag-Felder zusammenfassen" kann ich die beiden Felder zu einem vereinen und dann den Wert nach dem definierbaren Trennzeichen wegschnippseln.

---

<div class="post-metadata">

### Author: ![DetlevD](https://community.mp3tag.de/user_avatar/community.mp3tag.de/detlevd/32/123_2.png) [@DetlevD](https://community.mp3tag.de/u/DetlevD)
#### Post date: [May 29, 2012, 8:27am UTC](https://community.mp3tag.de/t/wie-kann-man-ein-multiline-year-reduzieren/13494/4 "2012-05-29T08:27:25Z")

</div>

> [@LyricsLover](#):
>
> ... Versuch bitte mal folgendes:  
> Tippe bei einem Song im Feld Year den folgenden Wert ein: 2003//2003und speichere diese Angaben in den Song. Du solltest mit ALT-T zwei Einträge für YEAR sehen, beide male mit 2003 als Wert....

Dein Vorschlag 2003//2003 wird ein normales Tag-Feld erzeugen.

Mit Eingabe von 2003\\2003 wird ein mehrwertiges Tag-Feld daraus.

DD.20120529.1227.CEST

---

<div class="post-metadata">

### Author: ![LyricsLover](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/l/c6cbf5/32.png) [@LyricsLover](https://community.mp3tag.de/u/LyricsLover)
#### Post date: [May 29, 2012, 8:34am UTC](https://community.mp3tag.de/t/wie-kann-man-ein-multiline-year-reduzieren/13494/5 "2012-05-29T08:34:52Z")

</div>

Sorry, Du hat natürlich Recht. Ich habe mich vertippt!  
Die Eingabe muss 2003\\2003 sein.  
Kannst DU daraus mit dem Formatstring $meta(YEAR,0) den ersten Teil extrahieren?

---

<div class="post-metadata">

### Author: ![DetlevD](https://community.mp3tag.de/user_avatar/community.mp3tag.de/detlevd/32/123_2.png) [@DetlevD](https://community.mp3tag.de/u/DetlevD)
#### Post date: [May 29, 2012, 9:00am UTC](https://community.mp3tag.de/t/wie-kann-man-ein-multiline-year-reduzieren/13494/6 "2012-05-29T09:00:07Z")

</div>

> [@LyricsLover](#):
>
> Sorry, Du hat natürlich Recht. Ich habe mich vertippt! Die Eingabe muss 2003\\2003 sein. Kannst DU daraus mit dem Formatstring $meta(YEAR,0) den ersten Teil extrahieren?

Vorausgesetzt, dass das multi-value Tag-Feld in der Datei existiert, funktioniert das immer  
(beim Test das Speichern nicht vergessen, mit Alt+T kontrollieren).

DD.20120529.1300.CEST

---

<div class="post-metadata">

### Author: ![poster](https://community.mp3tag.de/user_avatar/community.mp3tag.de/poster/32/4881_2.png) [@poster](https://community.mp3tag.de/u/poster)
#### Post date: [July 18, 2012, 4:45am UTC](https://community.mp3tag.de/t/wie-kann-man-ein-multiline-year-reduzieren/13494/7 "2012-07-18T04:45:33Z")

</div>

Ich hänge meine Frage mal hier an, weil ich vor der gleichen Aufgabe stehe, Multi-Value-Tags gegebenenfalls zu entfernen.  
Wie das mit YEAR geht, habe ich ja nun gelernt.  
Ich würde mir aber gerne vorher mal die Tags ansehen, bevor ich sie eventuell entferne.

Kann man einen Filter setzen, der Multivalue-Tags erkennt?  
Kann man eine mit einer Konvertierung Tag-Tag oder einer Aktion nur dann ein Multivalue-Tag löschen, wenn beide Values identisch sind?

---

<div class="post-metadata">

### Author: ![DetlevD](https://community.mp3tag.de/user_avatar/community.mp3tag.de/detlevd/32/123_2.png) [@DetlevD](https://community.mp3tag.de/u/DetlevD)
#### Post date: [July 18, 2012, 5:19am UTC](https://community.mp3tag.de/t/wie-kann-man-ein-multiline-year-reduzieren/13494/8 "2012-07-18T05:19:02Z")

</div>

> [@poster](#):
>
> ... Kann man einen Filter setzen, der Multivalue-Tags erkennt? ...

Siehe dort ...  
[How to filter duplicate fields?](https://community.mp3tag.de/t/13551/2)

"$if($eql($meta(YEAR,1),),0,1)" IS 1

> [@poster](#):
>
> ... Kann man eine mit einer Konvertierung Tag-Tag oder einer Aktion nur dann ein Multivalue-Tag löschen, wenn beide Values identisch sind?

Duplikate in META Tag-Feld löschen ... siehe dort ...  
[Merging several Tag Fields into CONTENTGROUP](https://community.mp3tag.de/t/10616/9)

Zum Beispiel ...  
YEAR = 2003\\2003

... einzeilige Liste erzeugen ...  
ITEMLIST = $meta\_sep(YEAR,','))  
==\> 2003,2003

Regex anwenden ...

_Aktionstyp 4:_ **Ersetzen mit regulärem Ausdruck** 

_Feld \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_:_ **ITEMLIST**  
_Regulärer Ausdruck \_\_\_:_ **(?#COMMA- OR COMMA+SPACE- DELIMITED LIST)(?:(?\<=,)|(?\<=\A)|(?\<=^))\s?([^,]_),(?=._?(?\<=,)\s?\1(?=,|\Z|$))**  
_Treffer ersetzen durch:_

 [\_] Groß-/Kleinschreibung berücksichtigen

Ergebnis soll sein ...  
YEAR = 2003

_Das ganze Tag-Feld löschen, wenn Duplikate enthalten sind, das willst du doch nicht wirklich, oder?_

Alles in einem Ausdruck ...

**$regexp($meta\_sep(YEAR,','),'(?:(?\<=,)|(?\<=\A)|(?\<=^))\s?([^,]\*),(?=.\*?(?\<=,)\s?\1(?=,|\Z|$))',)**

Vorher:  
(multi-value) 2003\\2003  
Nachher:  
(single-value) 2003

Falls eine Ergebnis-Liste wieder in ein multi-value Tag-Feld überführt werden soll ...

**$replace($regexp($meta\_sep(YEAR,','),'(?:(?\<=,)|(?\<=\A)|(?\<=^))\s?([^,]\*),(?=.\*?(?\<=,)\s?\1(?=,|\Z|$))',),',','\\\\')**

Vorher:  
(multi-value) 2003\\2003\\2004\\2005\\2005  
Nachher:  
(multi-value) 2003\\2004\\2005

... oder ...

Vorher:  
(multi-value) 2003\\2004\\2005\\2003\\2005  
Nachher:  
(multi-value) 2004\\2003\\2005

DD.20120718.1007.CEST

---

<div class="post-metadata">

### Author: ![anon40879270](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/a/8797f3/32.png) [@anon40879270](https://community.mp3tag.de/u/anon40879270)
#### Post date: [July 18, 2012, 2:56pm UTC](https://community.mp3tag.de/t/wie-kann-man-ein-multiline-year-reduzieren/13494/9 "2012-07-18T14:56:55Z")

</div>

Ich habe mit Aktion-Formatieren $meta(artist,0) & $meta(artist,1) 2 Artist-Felder zusammenfügen können. Was aber nicht funktioniert ist:  
$meta(artist,0) & $meta(artist,1)[, $meta(artist,2)][, $meta(artist,3)][, $meta(artist,4)]  
wenn ich die eckige Klammer benutze, d.h. für Felder die nur bei Bedarf benutzt werden.

---

<div class="post-metadata">

### Author: ![DetlevD](https://community.mp3tag.de/user_avatar/community.mp3tag.de/detlevd/32/123_2.png) [@DetlevD](https://community.mp3tag.de/u/DetlevD)
#### Post date: [July 18, 2012, 3:37pm UTC](https://community.mp3tag.de/t/wie-kann-man-ein-multiline-year-reduzieren/13494/10 "2012-07-18T15:37:43Z")

</div>

> [@mbaa3](#):
>
> ... Was aber nicht funktioniert ist:  
> $meta(artist,0) & $meta(artist,1)[, $meta(artist,2)][, $meta(artist,3)][, $meta(artist,4)]  
> wenn ich die eckige Klammer benutze, d.h. für Felder die nur bei Bedarf benutzt werden.

Manfred, das scheint eine Ausnahme zu sein oder ein Missverständnis oder beides.

1. 

Das ist kein Tag-Feld ...

**$meta(ARTIST,0)**

... sondern ein Aufruf der Funktion $meta, die das Tag-Feld ARTIST untersuchen soll.

1. 

**[%ARTIST%]**

... das wird funktionieren, sowohl für single-value, als auch für multi-value Tag-Feld ARTIST.

Eigentlich müsste die Eckige-Klammer-Funktion erweitert werden, so dass nicht nur ...  
"mindestens ein verwendeter Platzhalter innerhalb der Klammern gefunden" wird,  
sondern auch ...  
"mindestens ein von der Funktion $meta gelieferter Inhalt innerhalb der Klammern existiert".

Ein ähnliches Thema im Zusammenhang mit der Funktion $if2 gab es schon einmal ...  
[$meta() values lack meaning inside $if()](https://community.mp3tag.de/t/12113/2)

DD.20120718.1935.CEST

---

<div class="post-metadata">

### Author: ![poster](https://community.mp3tag.de/user_avatar/community.mp3tag.de/poster/32/4881_2.png) [@poster](https://community.mp3tag.de/u/poster)
#### Post date: [July 21, 2012, 6:11am UTC](https://community.mp3tag.de/t/wie-kann-man-ein-multiline-year-reduzieren/13494/11 "2012-07-21T06:11:53Z")

</div>

@DetlevD  
Vielen Dank zunächst mal für die zusammengetragenen Lösungen im Zusammenhang mit diesem Thema. Ich habe einen ersten Blick darauf geworfen, einiges versucht anzuwenden und teilweise Schiffbruch erlitten, wahrscheinlich weil ich einige Verständnisprobleme habe. Ich muss mich wohl mal in mehr Ruhe damit auseinandersetzen, die ich im Moment nicht habe.

Dein Filtervorschlag klappt zumindest schon mal.

> [@DetlevD](#):
>
> "$if($eql($meta(YEAR,1),%DUMMY%),0,1)" IS 1

Danach stellte sich mir aber die Frage, wie ich den Inhalt des Year-Tags der gefilterten MP3s wirklich gut überschaubar zu sehen bekomme. Schließlich habe ich herausgefunden, dass ich in der Zeilenansicht lediglich $meta(year) statt %year% definieren muss, um beide Werte sichtbar zu machen.

Dein Vorschlag zur Beseitigung des 2. Wertes

> [@](#):
>
> Als Aktion "Tag-Feld formatieren" ...  
> Feld: YEAR  
> Formatstring: $meta(YEAR,0)

klappt bei mir ebenso wie bei LyricsLover nicht.

Ich habe jedoch inzwischen gemerkt, dass es ja auch einen Aktionstyp "Doppelte Tagfelder entfernen" gibt, der wohl generell den 2. Wert entfernt.

---

<div class="post-metadata">

### Author: ![DetlevD](https://community.mp3tag.de/user_avatar/community.mp3tag.de/detlevd/32/123_2.png) [@DetlevD](https://community.mp3tag.de/u/DetlevD)
#### Post date: [July 21, 2012, 8:59am UTC](https://community.mp3tag.de/t/wie-kann-man-ein-multiline-year-reduzieren/13494/12 "2012-07-21T08:59:07Z")

</div>

> [@poster](#):
>
> @DetlevD Vielen Dank zunächst mal ...

Bitteschöööön.

> [@poster](#):
>
> ... Dein Vorschlag zur Beseitigung des 2. Wertes ... klappt ... nicht ...

Ja das stimmt ...  
_"Ein Multivalue Tag Field kann nicht mit seinem eigenen ersten Wert alleine überschrieben werden."_

Dieser Fehler ist gemeldet ...  
[/t/12626/1](https://community.mp3tag.de/t/12626/1)

Das Überschreiben des ersten Wertes (Index 0) in einem multi-value Tag-Feld funktioniert zurzeit erst ab dem zweiten Wert (Index 1) ...  
Aktion: Tag-Feld formatieren  
Feld: YEAR  
Formatstring: $meta(YEAR,1)  
... das funktioniert.

Mit zwei Aktionen "Tag-Feld formatieren" kommt man auch zu einer Lösung, zum Beispiel ...  
Aktion: Tag-Feld formatieren  
Feld: YEAR  
Formatstring: **' '$left($meta\_sep(YEAR,'\\'),$sub($strstr($meta\_sep(YEAR,'\\'),'\\'),1))**

Aktion: Tag-Feld formatieren  
Feld: YEAR  
Formatstring: **$trim(%YEAR%)**

Vorher (multi-value):  
2005\\2002\\2003  
Nachher (single-value):  
2005

> [@poster](#):
>
> ... Danach stellte sich mir aber die Frage, wie ich den Inhalt des Year-Tags der gefilterten MP3s wirklich gut überschaubar zu sehen bekomme. ...

Spaltendefinition ...  
Name: Jahr  
Wert: **$meta\_sep(YEAR,'\\')**  
Feld: %YEAR%

> [@poster](#):
>
> ... Ich habe jedoch inzwischen gemerkt, dass es ja auch einen Aktionstyp "Doppelte Tagfelder entfernen" gibt, der wohl generell den 2. Wert entfernt.

Betreffend die Aktion "Doppelte Tag-Felder entfernen" werden _alle multi-value Tag-Felder im gesamten Tag-Typ entfernt_ bzw. reduziert auf ihren jeweils ersten Wert.  
Diese radikale Art der Bearbeitung ist wohl nicht immer erwünscht.

Betreffend die Aktion "Doppelte Tag-Felder zusammenfassen" ... siehe hier im Thread post #2.  
Aus multi-value Tag-Feld ...  
YEAR = "2003\\2004\\2005"  
... und ...  
Trennzeichen/Pattern = " - " ()  
... wird ...  
YEAR = "2003 - 2004 - 2005"

Wie gesagt ... und vorstehend demonstriert ... mit der Skriptsprache kann man weitere Bearbeitungen vornehmen.

Oder man benutzt die Aktionen, zum Beispiel im Anschluss an "Doppelte Tag-Felder zusammenfassen" die Aktion "Tag-Felder importieren".  
Quellformat: %YEAR%  
Formatstring/Pattern: %YEAR% - %DUMMY%  
... ergibt ...  
YEAR = "2003"

DD.20120721.1306.CEST

Anmerkung:  
_"Ein Multivalue Tag Field kann ~~nicht~~ mit seinem eigenen ersten Wert alleine überschrieben werden."_  
So funktioniert es ... **$meta(YEAR,0)'\\'**

DD.20140215.2018.CET
