Чего я хочу?
Учитывая следующую структуру каталогов:
.
├── 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_*
.