1

windows или linux, либо работает, он на внешнем диске либо умеет читать

например, изменить "version2" на "version3" в каждом файле и папке проекта?

Хотя в этом случае я хочу изменить инициалы пациента на «пациент-1» в каждом имени файла и имени папки, это десятки, сотни файлов, десятки гигабайт и около 10 пациентов (десять разных вещей, которые нужно изменить).

2 ответа2

0

ответ, который я получил из других мест, но я не пробовал его, и я не знаю, является ли он оптимальным:

"Это не так элегантно, как я надеялся, но оно заменяет" -kr "на" -patient-123 "в конце" * .txt "файлов"

находить . -типа f -iname '* .txt' | perl -ne 'chomp; мой $ orig = $ ; if (s/-kr (.txt) $/- Patient-123 $ 1/) {print "$ orig\0 $\0"; } '| xargs -0rn2 mv -i

«он только делает имена файлов, папки могут быть сделаны отдельно, как это:»

находить . тип d | так | perl -ne 'chomp; мой $ orig = $ ; if (s/-kr $/- Patient-123/) {print "$ orig\0 $\0"; } '| xargs -0rn2 mv -i

0

В Linux я бы использовал find чтобы найти все соответствующие файлы, а затем rename:

$ find . -name "*version2*" -exec rename version2 version3  {} \;

РЕДАКТИРОВАТЬ:
Для пояснения, согласно комментарию @ choroba ниже, это решение относится к rename (1), распространяемому как часть пакета util-linux.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .