*Drive*- Здесь рулят padonki https://drivesource.ru/ |
|
Пакетное переименование файлов в Linux https://drivesource.ru/viewtopic.php?f=15&t=1651 |
Страница 1 из 1 |
Автор: | Kodla [ 06 окт 2021, 13:37 ] |
Заголовок сообщения: | Пакетное переименование файлов в Linux |
Итак, у нас есть куча файлов, среди которых надо навести порядок. Для этого сделаем групповое переименование. Rename Утилита rename входит в стандартную поставку Debian, так что начнем с нее. Код: rename [ -v ] [ -n ] [ -f ] perlexpr [ files ] -v отобразить имена успешно переименованных файлов. -n отобразить список файлов, которые будут переименованы, без переименования в итерации. -f перезаписать уже существующие файлы. perlexpr — шаблон для переименования. Для того, чтобы выполнить переименование файлов согласно условию, выполним команду: Код: # rename 's/.sh/.sh.bak/g' *.sh Рассмотрим perlexr подробнее: s=указывает, что требуется замещение. /.sh/=Строка, которую будем замещать. /.sh.bak/ = строка, на которую будем замещать g=global, будем замещать все найденные вхождения. С помощью rename можно быстро изменить регистр файлов. Например поднимем регистр файлов из примера: Код: # rename ‘y/a-z/A-Z/’ * MMV mmv — программа для массового перемещения, переименования, копирования, объединения файлов. По умолчанию она не включена в состав Debian. Поставим ее: Код: # apt-get install mmv Наша задача решается одной строкой: Код: # mmv \*.sh \#1.sh.bak MV Теперь решим нашу задачу стандартной командой mv. Для этого нам прийдется немного попрограммировать в bash. Код: for i in *.sh; do mv $i `basename $i sh`sh.bak; done Попробуем усложить задачу. Например у нас есть куча файлов JPG: 1234234.jpg e456567657.jpg 234df34.jpg … Мы хотим привести их к следующему виду: file1.jpg file2.jpg file3.jpg … Пример скрипта: Код: j=0; for i in *.jpg; do let j+=1; mv $i file$j.jpg ; done Midnight Commander В любимом многими mc, процесс переименования по маске выполняется просто и непринужденно в два действия. 1. Через + выбираем файлы по маске *.sh 2. Нажимаем F6 и в destination указываем *.sh.bak Все примеры, приведенные выше, так или иначе работают во всех Linux, BSD, Mac OS, если стоят соответствующие утилиты. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |