Как я могу удалить какой-то текст из имен файлов в папке?
В настоящее время я пытаюсь:
rename s/"NEWER_(.*?)"//g *
Но ничего переименовывать
У меня есть родительская папка с кучей подпапок, внутри которых находятся файлы, которые, по мнению OneDrive, было бы отличной идеей добавить к «(NEWER_timestamp)», и я хотел бы удалить это.
Примеры имен файлов:
getyou.ico (NEWER_1417529079.87)
o7pm.ico (NEWER_1417529184.89)
o7th.ico (NEWER_1417529135.81)
rename
batch-rename
Kevin
источник
источник
Ответы:
Попробуйте следующее:
[^/]*(.*) .*$
соответствует только последней части пути, которая не содержит/
. И(.*)
это группа соответствия всего после последнего/
и перед пробелом. Его обратная ссылка будет
$1
..*$
соответствует всему концу$
имени файла после пробела.s/.../REPLACEMENT/
мы просто сохранили группу соответствия между последней\
и пробелом,(.*)
который называется группой совпадений.источник
Вы должны рассмотреть возможность использования кавычек за пределами регулярного выражения (внутри они воспринимаются буквально как кавычки) и escape
(
. Пытаться;Точность выражения может не требоваться, но вы не можете быть слишком осторожны при изменении файлов.
источник
reading filenames from STDIN
мной, я уже нахожусь в папке «Родитель», где все эти файлы*NEWER*
остается такой, какой она есть, если не найдено никаких расширений, вы, должно быть, допустили ошибку или используете оболочку, которая заменяет непревзойденный подстановочный знак ничем.