переименуйте файлы и каталоги {searchstr} с помощью {replacestr} - PullRequest
0 голосов
/ 08 декабря 2010

У меня есть приложение (Templify), которое создает шаблонную структуру каталогов, но, похоже, оно не может переименовать «__NAME__» в то, что я определил как цель.

Хорошо, если я найду чистый способ переименовать все файлы и каталоги с моим текстом замены.

Я нашел метод rename.pl, который переименовывает файлы, и нашел некоторый код, который удаляет подчеркивания в именах файлов и заменяет его пробелами ... но когда я изменяю код, добавляя его в условия поиска, он никогда не кажется работа.

Итак, в основном мне нужно заменить «__NAME__» на что-то вроде «Project-Name».

Я рад изменить строки поиска для каждого повторного использования в будущем, но я бы хотел выяснить, как создать файл, в который я могу передать ARGS.

Я нахожусь на XP и могу использовать cygwin (у cygwin, похоже, нет «переименования», что затрудняет поиск решений типа linux с использованием функции «переименовать» ....)

Я нашел этот , который прост в использовании для файлов в текущем каталоге, но я не знаю достаточно, чтобы сказать ему, чтобы переходить в подкаталоги.

Любая помощь будет отличной.

Спасибо, Скотт

1 Ответ

0 голосов
/ 08 декабря 2010

Из cygwin:

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

Или используя 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"))
...