На основе шаблона, переименование пакетного файла в терминале

Мне нужно переименовать следующее:

file_001_loremipsum.png
file_002_dolor.png
file_003_sit.png
file_004_amet.png
file_105_randomness.png

в

upl_loremipsum.png
upl_dolor.png
upl_sit.png
upl_amet.png
upl_randomness.png

Как мне сделать это с помощью одной простой строки команды терминала?

48
задан 19 April 2013 в 14:19

3 ответа

если файлы находятся в нескольких каталогах, используйте переименование после поиска, например:

find -iname file_*.png -type f -exec rename -n 's/file_[0-9]{3}(.*\.png)/upl$1/' {} \;

-n после переименования - для проверки, удалите его, чтобы продолжить! -)

вот так Вы ассоциируете находку и переименовываете власть.

Лично я использовал его для переименования источников заголовка .h в .hpp

find -iname *.h -type f -exec rename 's/(.*\.)h/$1hpp/' {} \;
0
ответ дан 19 April 2013 в 14:19

Это может быть сделано с небольшой магией расширения параметров bash!

for f in file_[0-9]*_*; do mv $f upl_${f#file_[0-9]*_}; done

file_[0-9]*_*; - Первый шаблон используется для прохождения всех файлов, начинающихся с 'file_anynumber _'
[ 113] - Второй шаблон file_[0-9]*_ используется в расширении параметра, которое сообщает bash, чтобы удалить 'file_anynumber_' из начала строки.

Для получения дополнительной информации о Parameter expansion:

man bash
0
ответ дан 19 April 2013 в 14:19

Решение приведенного выше примера с использованием переименовать :

rename -v -n 's/file_\d{1,3}/upl/' file_*.png

Использование:

rename [options] [Perl regex search/replace expression] [files]

Из man rename:

   -v, --verbose
           Verbose: print names of files successfully renamed.
   -n, --no-act
           No Action: show what files would have been renamed.

переименование МОЖЕТ принять в качестве аргументов регулярное выражение.

То, на что мы смотрим, - это содержание между одинарными кавычками '. Вы можете поместить регулярное выражение через /.

Формула: s/(1)/(2)/ где (1) = шаблон поиска, а (2) = шаблон замены.

Итак, познакомьтесь с регулярным выражением и наслаждайтесь переименованием пакетных файлов на основе шаблонов!

0
ответ дан 19 April 2013 в 14:19

Другие вопросы по тегам:

Похожие вопросы: