5

I want to search replace & strings in thousands of wavefront *.mtl files to add many new Texture links. Is this even possible with Notepad++ regex? I´ve already altered these files very often with regex, but this task is way over my head!

At the current state I got many Materialparts in every file looking like this:

newmtl Material__28
    Ns 0.000000
         ︙
    Kd 1.000000 1.000000 1.000000
    Ks 0.000000 0.000000 0.000000
    Ke 0.000000 0.000000 0.000000

    map_Kd textures\wall_exterior_wood_02.png

where the dots represent text that I don't want to change (and that doesn't contain the string map_Kd).

And afterwards it should contain the NRM & Spec PNGs named exactly like the first map_Kd.

Example:

newmtl Material__28
    Ns 0.000000
         ︙
    Kd 1.000000 1.000000 1.000000
    Ks 0.000000 0.000000 0.000000
    Ke 0.000000 0.000000 0.000000

    map_Kd   textures\wall_exterior_wood_02.png
    map_bump textures\wall_exterior_wood_02_nrm.png
    map_bump textures\wall_exterior_wood_02_nrm alternative.png
    map_Ks   textures\wall_exterior_wood_02_spec.png

I've added spaces to the map lines for clarity. Important is that the naming of the PNGs should be the same except for the prefixes "map_bump" and "map_ks" and the postfixes "_nrm", "_nrm alternative", and "_spec".

4

In Notepad++.

Use ctrl+h (replace)

Select "Regular Expression" radio button in the Search Mode box in the bottom left (making sure the matches newline tickbox is unticked)

Find:

map_Kd\s+(\S+)\.png

Replace:

map_Kd \1.png\n map_bump \1_nrm.png\n map_bump \1_nrm_alternative.png\n mapKs \1_spec.png

The find expression looks for "map_Kd" followed by one or more spaces ("\s+") then keeps one or more non-space characters ("(\S+)") until it hits ".png"

The replace puts the string you kept in wherever "\1" appears. I've also included "\n" newlines and spacing to align things as in your example.

  • You sir are my Notepad++ hero! – João Neves Feb 18 '16 at 10:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.