# Need help moving (feat.)

**URL:** https://community.mp3tag.de/t/need-help-moving-feat/4147
**Category:** Support
**Created:** [December 5, 2006, 11:13am UTC](https://community.mp3tag.de/t/need-help-moving-feat/4147 "2006-12-05T11:13:33Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![Homer11](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/h/c0e974/32.png) [@Homer11](https://community.mp3tag.de/u/Homer11)
#### Post date: [December 5, 2006, 11:13am UTC](https://community.mp3tag.de/t/need-help-moving-feat/4147/1 "2006-12-05T11:13:33Z")

</div>

Hi.

I've a lot of tracks that look like this:  
ARTIST: Jay-Z (feat. Pharell)  
TITLE: Change Clothes

I want them to look like this:  
ARTIST: Jay-Z  
TITLE: Change Clothes (feat. Pharell)

In other words, I want to move the (feat. Pharell) part from the artist field to the title field, without removing the text already in there.

Is there any easy way to get this done? I've searched the forum but couldn't find anything.

Very thankful for any help.

---

<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: [December 5, 2006, 2:41pm UTC](https://community.mp3tag.de/t/need-help-moving-feat/4147/2 "2006-12-05T14:41:23Z")

</div>

> [@Homer11](#):
>
> ... In other words, I want to move the (feat. Pharell) part from the artist field to the title field, without removing the text already in there.

You may create an Actiongroup containing following actions:

Action #1:  
_Action type:_ **Format value**  
_Field:_ **HOMER11\_SWAP**  
_Formatstring:_ **%ARTIST%**

Action #2:  
_Action type:_ **Replace with regular expression**  
_Field:_ **ARTIST**  
_Regular expression:_ **^(._) ((._))$**  
_Replace matches with:_ **$1**

[] case-sensitive comparison

Action #3:  
_Action type:_ **Replace with regular expression**  
_Field:_ **HOMER11\_SWAP**  
_Regular expression:_ **^(._) ((._))$**  
_Replace matches with:_ **$2**

[] case-sensitive comparison

Action #4:  
_Action type:_ **Format value**  
_Field:_ **TITLE**  
_Formatstring:_ **%TITLE% %HOMER11\_SWAP%**

Action #5:  
_Action type:_ **Remove fields**  
_Fields to remove (semicolon-separated):_ **HOMER11\_SWAP**

DD.20061205.1640

---

<div class="post-metadata">

### Author: ![Homer11](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/h/c0e974/32.png) [@Homer11](https://community.mp3tag.de/u/Homer11)
#### Post date: [December 5, 2006, 6:36pm UTC](https://community.mp3tag.de/t/need-help-moving-feat/4147/3 "2006-12-05T18:36:23Z")

</div>

Thank you so very much.  
It works perfectly. This is gonna save me so much time!

---

<div class="post-metadata">

### Author: ![Logan](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/l/278dde/32.png) [@Logan](https://community.mp3tag.de/u/Logan)
#### Post date: [December 6, 2006, 8:39pm UTC](https://community.mp3tag.de/t/need-help-moving-feat/4147/4 "2006-12-06T20:39:52Z")

</div>

wow - this will definately save a great deal of time...

Any chance you have a thought how to accomplish this when you have artist1/artist2/artist3 in the ARTIST tag?

---

<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: [December 8, 2006, 2:12pm UTC](https://community.mp3tag.de/t/need-help-moving-feat/4147/5 "2006-12-08T14:12:37Z")

</div>

> [@Logan](#):
>
> ... Any chance you have a thought how to accomplish this when you have artist1/artist2/artist3 in the ARTIST tag?

You may separate the artists collection string into single tagfields and use these single tagfields for your needs.  
See pictures attached.  
 ![](https://community.mp3tag.de/uploads/default/original/2X/9/9549e27e0bb06620c87374afb1dd1b8218f2ff76.jpg)

![](https://community.mp3tag.de/uploads/default/original/2X/4/48e24a7853b33f1661ea529489b010f10f692b42.jpg)

![](https://community.mp3tag.de/uploads/default/original/2X/9/9549e27e0bb06620c87374afb1dd1b8218f2ff76.jpg)

![](https://community.mp3tag.de/uploads/default/original/2X/4/48e24a7853b33f1661ea529489b010f10f692b42.jpg)

---

<div class="post-metadata">

### Author: ![Logan](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/l/278dde/32.png) [@Logan](https://community.mp3tag.de/u/Logan)
#### Post date: [December 14, 2006, 3:05am UTC](https://community.mp3tag.de/t/need-help-moving-feat/4147/6 "2006-12-14T03:05:07Z")

</div>

OK - what if _Feat Artist_ is \*not\* enclosed in parentheses?

---

<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: [December 14, 2006, 3:21am UTC](https://community.mp3tag.de/t/need-help-moving-feat/4147/7 "2006-12-14T03:21:47Z")

</div>

You have to create another new regular expression or try to manipulate the existing regular expression that will fit to the new task.

If you are not familiar with regular expressions yet, you may try to get help from the forum community, giving us an comprehensive example about the strings from before and after state.

DD.20061214.0520

---

<div class="post-metadata">

### Author: ![Logan](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/l/278dde/32.png) [@Logan](https://community.mp3tag.de/u/Logan)
#### Post date: [December 14, 2006, 3:39am UTC](https://community.mp3tag.de/t/need-help-moving-feat/4147/8 "2006-12-14T03:39:00Z")

</div>

> [@DetlevD](#):
>
> If you are not familiar with regular expressions yet, you may try to get help from the forum community, giving us an comprehensive example about the strings from prior and post state.
> 
> DD.20061214.0520

The before and after are very similiar to the original post:

Before:  
ARTIST: Jay-Z feat. Pharell  
TITLE: Change Clothes

 

After:  
ARTIST: Jay-Z  
TITLE: Change Clothes (feat. Pharell)

---

<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: [December 14, 2006, 1:41pm UTC](https://community.mp3tag.de/t/need-help-moving-feat/4147/9 "2006-12-14T13:41:16Z")

</div>

> [@Logan](#):
>
> The before and after are very similiar to the original post:
> 
> Before:  
> ARTIST: Jay-Z feat. Pharell  
> TITLE: Change Clothes  
> After:  
> ARTIST: Jay-Z  
> TITLE: Change Clothes (feat. Pharell)

1. 

Instead of (see above HOMER11 example):  
_Action type:_ **Replace with regular expression**  
_Field:_ **ARTIST**  
_Regular expression:_ **^(._) ((._))$**  
_Replace matches with:_ **$1**

[] case-sensitive comparison

you may use:  
_Regular expression:_ **^(._) ((_[f|F]eat._)_)$**

This will swap the string part 'feat. ...' or '(feat. ...)' as is.

From:  
ARTIST: Jay-Z feat. Pharell  
To:  
TITLE: Change Clothes feat. Pharell

From:  
ARTIST: Jay-Z (feat. Pharell)  
To:  
TITLE: Change Clothes (feat. Pharell)

1. 

If you want to swap the string part 'feat. ...' or '(feat. ...)' and have the target part always surrounded by round brackets, you may choose following example:

Action #1:  
_Action type:_ **Format value**  
_Field:_ **\_SWAP**  
_Formatstring:_ **%ARTIST%**

Action #2:  
_Action type:_ **Replace with regular expression**  
_Field:_ **ARTIST**  
_Regular expression:_ **^(._) (_([f|F]eat._))_$**  
_Replace matches with:_ **$1**

[] case-sensitive comparison

Action #3:  
_Action type:_ **Replace with regular expression**  
_Field:_ **\_SWAP**  
_Regular expression:_ **^(._) (_([f|F]eat._))_$**  
_Replace matches with:_ **$2**

[] case-sensitive comparison

Action #4:  
_Action type:_ **Format value**  
_Field:_ **TITLE**  
_Formatstring:_ **%TITLE% (%\_SWAP%)**

Action #5:  
_Action type:_ **Remove fields**  
_Fields to remove (semicolon-separated):_ **\_SWAP**

DD.20061214.1540

---

<div class="post-metadata">

### Author: ![Logan](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/l/278dde/32.png) [@Logan](https://community.mp3tag.de/u/Logan)
#### Post date: [December 14, 2006, 2:00pm UTC](https://community.mp3tag.de/t/need-help-moving-feat/4147/10 "2006-12-14T14:00:12Z")

</div>

Perfect, thanks for your help!

---

<div class="post-metadata">

### Author: ![beeeeh](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/b/f07891/32.png) [@beeeeh](https://community.mp3tag.de/u/beeeeh)
#### Post date: [January 10, 2008, 1:23pm UTC](https://community.mp3tag.de/t/need-help-moving-feat/4147/11 "2008-01-10T13:23:38Z")

</div>

If there is no "(feat. [...])" in the artist tag, the complete artist tag is added at the end of the title tag. is it possible to avoid that with an if expression?

Thanks 🙂

---

<div class="post-metadata">

### Author: ![Logan](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/l/278dde/32.png) [@Logan](https://community.mp3tag.de/u/Logan)
#### Post date: [January 10, 2008, 1:57pm UTC](https://community.mp3tag.de/t/need-help-moving-feat/4147/12 "2008-01-10T13:57:18Z")

</div>

I have not seen that issue when using these actions, please double check that you've copied them in correctly, you may need to post them here.

---

<div class="post-metadata">

### Author: ![beeeeh](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/b/f07891/32.png) [@beeeeh](https://community.mp3tag.de/u/beeeeh)
#### Post date: [January 10, 2008, 4:11pm UTC](https://community.mp3tag.de/t/need-help-moving-feat/4147/13 "2008-01-10T16:11:14Z")

</div>

Allright,

i used as first action  
"Action #1:  
Action type: Format value  
Field: \_SWAP  
Formatstring: %ARTIST%"

and the problem is still there. i created a column for "\_swap". after my song is tagged like artist: artist1, title: song (feat. artist2) there stand the artist1 in the swap row. i think somewthing with that part is wrong:

Action #3:  
Action type: Replace with regular expression  
Field: \_SWAP  
Regular expression: ^(._) (_([f|F]eat._))_$  
Replace matches with: $2  
[] case-sensitive comparison

if there is no feat. [...] in the swap field, the script don't deletes (although there is the "$2") the artist 1 in the swap field.

... or i'm too stupid

---

<div class="post-metadata">

### Author: ![Logan](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/l/278dde/32.png) [@Logan](https://community.mp3tag.de/u/Logan)
#### Post date: [January 11, 2008, 1:53pm UTC](https://community.mp3tag.de/t/need-help-moving-feat/4147/14 "2008-01-11T13:53:20Z")

</div>

I can look at your actions in more detail later, but for now here are the contents of the action list that I use (needs a little clean-up, but it works):

```
[#0]
T=5
F=USR_SWAP
1=%artist%

[#1]
T=4
F=ARTIST
1=^(.*) (\\\\(*[f|F]eat.*\\\\)*|/)$
2=$1
3=0

[#2]
T=4
F=USR_SWAP
1=^(.*) \\\\(*([f|F]eat.*)\\\\)*$
2=$2
3=0

[#3]
T=5
F=TITLE
1=$if($eql(%artist%,%usr_swap%),%title%,%title% (%usr_swap%))

[#4]
T=9
F=usr_swap

```

---

<div class="post-metadata">

### Author: ![beeeeh](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/b/f07891/32.png) [@beeeeh](https://community.mp3tag.de/u/beeeeh)
#### Post date: [January 16, 2008, 4:11pm UTC](https://community.mp3tag.de/t/need-help-moving-feat/4147/15 "2008-01-16T16:11:03Z")

</div>

I didn't know what that meant "[#1] T=4", i just inserted the if-clause in the 4th action ($if($eql(%artist%,%SWAP%),%title%,%title% (%SWAP%))). Now it works perfectly.

Thanks very much! 🙂

---

<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: [January 17, 2008, 9:51am UTC](https://community.mp3tag.de/t/need-help-moving-feat/4147/16 "2008-01-17T09:51:05Z")

</div>

> [@beeeeh](#):
>
> ... if there is no feat. [...] in the swap field, the script don't deletes (although there is the "$2") the artist 1 in the swap field. ... or i'm too stupid

If a search expression in a $regexp() function cannot be evaluated to a specific match, then the $regexp() function returns the complete input search value.

To work around this often unwanted behaviour you may use something like this:  
$if($eql(%regexp\_result%,%search\_field%),%search\_field%,your modified %regexp\_result%)

DD.20080117.1150.CET

---

<div class="post-metadata">

### Author: ![phatair](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/p/94ad74/32.png) [@phatair](https://community.mp3tag.de/u/phatair)
#### Post date: [July 16, 2009, 2:46pm UTC](https://community.mp3tag.de/t/need-help-moving-feat/4147/17 "2009-07-16T14:46:34Z")

</div>

> [@DetlevD](#):
>
> 1. 
> 
> If you want to swap the string part 'feat. ...' or '(feat. ...)' and have the target part always surrounded by round brackets, you may choose following example:
> 
> Action #1:  
> _Action type:_ **Format value**  
> _Field:_ **\_SWAP**  
> _Formatstring:_ **%ARTIST%**
> 
> Action #2:  
> _Action type:_ **Replace with regular expression**  
> _Field:_ **ARTIST**  
> _Regular expression:_ **^(._) (_([f|F]eat._))_$**  
> _Replace matches with:_ **$1**
> 
> [] case-sensitive comparison
> 
> Action #3:  
> _Action type:_ **Replace with regular expression**  
> _Field:_ **\_SWAP**  
> _Regular expression:_ **^(._) (_([f|F]eat._))_$**  
> _Replace matches with:_ **$2**
> 
> [] case-sensitive comparison
> 
> Action #4:  
> _Action type:_ **Format value**  
> _Field:_ **TITLE**  
> _Formatstring:_ **%TITLE% (%\_SWAP%)**
> 
> Action #5:  
> _Action type:_ **Remove fields**  
> _Fields to remove (semicolon-separated):_ **\_SWAP**
> 
> DD.20061214.1540

Hi, i followed the instructions above but if i run the "script" only 2 round brackets are added to the TITLE Tag and the feat. artist is removed from the ARTIST Tag - what did i wrong?  
i hope somebody can help me.

---

<div class="post-metadata">

### Author: ![newser](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/n/b9bd4f/32.png) [@newser](https://community.mp3tag.de/u/newser)
#### Post date: [July 16, 2009, 3:27pm UTC](https://community.mp3tag.de/t/need-help-moving-feat/4147/18 "2009-07-16T15:27:02Z")

</div>

You can try this:  
[Feldinhalt ab bestimmter Position ausschneiden und in anderes Feld einfügen](https://community.mp3tag.de/t/8419/2)

---

<div class="post-metadata">

### Author: ![phatair](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/p/94ad74/32.png) [@phatair](https://community.mp3tag.de/u/phatair)
#### Post date: [July 16, 2009, 3:54pm UTC](https://community.mp3tag.de/t/need-help-moving-feat/4147/19 "2009-07-16T15:54:43Z")

</div>

thanks for the link newser  
Is it possible that the filename is renamed to?

---

<div class="post-metadata">

### Author: ![system](https://community.mp3tag.de/uploads/default/original/2X/c/ce7035d426cb755a7916793326d23b465222a407.png) [@system](https://community.mp3tag.de/u/system)
#### Post date: [February 9, 2026, 12:20pm UTC](https://community.mp3tag.de/t/need-help-moving-feat/4147/20 "2026-02-09T12:20:02Z")

</div>


