Теперь, перед тем как встать лицом к лицу и щелкнуть по дублирующейся записи или тому подобное, читайте дальше, этот вопрос является одновременно и теоретическим, и практическим.
Из названия довольно очевидно, что я пытаюсь сделать, найдите несколькофайлы, затем переименуйте их.Проблема в том, что есть так много способов сделать это, что я наконец решил выбрать один и попытаться выяснить это теоретически.
Позвольте мне установить сцену: допустим, у меня есть 100 файлов, названных так: Image_200x200_nnn_AlphaChars.jpg, где nnn - это инкрементное число, а AlphaChars то есть:
Image_200x200_001_BlueHat.jpg
Image_200x200_002_RedHat.jpg
...
Image_200x200_100_MyCat.jpg
Выйти на сцену найти .Теперь, используя простой вкладыш, я могу найти все файлы изображений в этом каталоге. ( Не уверен, как сделать этот регистр нечувствительным )
find . -type f -name "*.jpg"
Войти на сцену переименовать .Само по себе переименование предполагает, что вы сделаете следующее:
rename <search> <replace> <haystack>
Когда я попытаюсь объединить их с -print0 и xargs и некоторыми регулярными выражениями Iзастрять, и я почти уверен, что это потому, что переименование ищет стог сена или часть поиска ... ( Пожалуйста, объясните, если вы понимаете, что происходит после трубы )
find . -type f -name "*.jpg" -print0 | xargs -0 rename "s/Image_200x200_(\d{3})/img/"
Таким образом, цель состоит в том, чтобы найти, чтобы дать переименовать исходное имя изображения и заменить все до последнего подчеркивания на img
Да, я знаю, что дубликаты создадут проблему, и даЯ знаю, что пробелы в имени также превратят мою жизнь в ад, и даже не будут начинаться с подкаталогов и тому подобного.Чтобы было проще, мы говорим об одном каталоге, и все имена файлов уникальны и не имеют специальных символов.
Мне нужно понять фундаментальные основы, прежде чем перейти к хардкорным вещам.Кто-нибудь хочет помочь?