Назад | Перейти на главную страницу

Как переименовать несколько файлов, заменив слово в имени файла, полученное из переменных сценария оболочки?

Этот вопрос нравится этой ветке. Как переименовать несколько файлов, заменив слово в имени файла?

Мой пример сложнее, чем тема выше. Две переменные - $ name и $ newname - получаются из другого места сценария оболочки. $ name и $ newname могут иметь слова Unicode или специальные символы, такие как [] <> ♫ ... и т. д., поэтому может ли кто-нибудь помочь мне предоставить метод для добавления части скрипта в оболочку scrit для решения вопроса о замене имени файла.

Кстати, я пытаюсь ввести два типа команд, чтобы изменить часть имени файла, но это не сработает.

rename.ul '$name' '$newname' /home/fy6877/test/final/* 
ls /home/fy6877/test/final/|xargs -I$ rename.ul '$name' '$newname' $ 

Использовать rename или mmv. Ни один из них не должен заботиться о том, есть ли в ваших именах символы Юникода в кодировке UTF-8 или являются ли аргументы, указанные в командной строке, переменными или простыми литералами. Обязательно передайте аргументы как "$name" не '$name' чтобы гарантировать, что значение переменной будет передано команде переименования.