Изменить - на. для всех файлов в каталоге - PullRequest
2 голосов
/ 22 мая 2010

Мне нужно переименовать все файлы в каталоге. Некоторые примеры исходных имен файлов:

alpha--sometext.381928
comp--moretext.7294058

Полученные файлы будут переименованы в:

alpha.sometext.381928
comp.moretext.7294058

Количество символов до и после - равно , а не .

Скрипт должен работать на текущих установках Ubuntu и FreeBSD. Это простые серверы LAMP, поэтому были установлены только необходимые пакеты.

Спасибо

Ответы [ 2 ]

4 голосов
/ 22 мая 2010

В качестве альтернативы чистой оболочке вы можете использовать rename, стандартную утилиту, которая поставляется с Perl.Это удобнее для простых случаев.

rename 's/--/./' *
4 голосов
/ 22 мая 2010

Via Bash:

for file in *--*; do
    mv "${file}" "${file/--/.}"
done

Магия находится в ${file/--/.}, что является значением ${file}, за исключением того, что каждый "-" заменен на "."

...