Чего я хочу?
Учитывая следующую структуру каталогов:
.
├── bar.py
├── hap
│ ├── bla.py
│ └── tests
│ └── test_hap.py
└── hip
├── testimony.py
└── tests
├── foo.py
└── test_hip.py
Я хотел бы перейти к следующему:
.
├── bar.py
├── hap
│ ├── bla.py
│ └── tests
│ └── test_hap.py.bad
└── hip
├── testimony.py
└── tests
├── foo.py
└── test_hip.py.bad
Итак, я хочу добавить .badко всем файлам, начиная с test_которых находятся в testsкаталоге.
Что я пробовал?
Из советов, приведенных в этой теме , я попробовал следующее:
shopt -s globstar
rename "s/tests\/test_.*/tests\/test_.*\.bad/" **
Но .*в newчасти шаблона замещения s/old/new, по-видимому, автоматически выполняется экранирование. Как я могу позволить второй .*интерпретировать как регулярное выражение?
Кроме того, использование test_.*\.bad$дает мне следующее:
Final $ should be \$ or $name at (eval 1) line 1, within string
testsкак указано. так что вместо-name "test_*"я использовал-path "*tests/test_*.