Question

I have an application (Templify) that creates a templatized directory structure, but it seems to not be able to rename the "__NAME__" with what I've identified as the target.

This is fine if I can find a clean way to rename all files & directories with my replacement text.

I found a rename.pl method that renames files, and I found some code that removes underscores in file names and replaces it with spaces... but when I modify the code to put in my search terms, it never seems to work.

So, basically, I need to replace "__NAME__" with something like "Project-Name".

I'm happy to modify the search strings for each future reuse, but I'd love to figure out how to create a file to which I can pass ARGS.

I'm on XP and can use cygwin (cygwin doesn't seem to have 'rename' which makes it hard to locate linux-type solutions with using the function called 'rename'....)

I did find this which is easy to use for files in the current directory, but I don't know enough to tell it to recurse into sub-directories.

Any help would be great.

Thanks, Scott

Was it helpful?

Solution

From cygwin:

find /cygdrive/c/mytree -type f | perl -ne 'rename $_, $1/Project-Name if m[^(.*)/__NAME__$]'

Or using python:

import os

for root, dirs, files in os.walk("C:\\mytree"):
    for filename in files:
        if filename == "__NAME__":
            os.rename(os.path.join(root, filename), os.path.join(root, "Project-Name"))
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top