Добавить букву перед предыдущим именем в папке. (Переименовать)

Добавить букву перед предыдущим именем в папке. (Переименовать)

У меня есть несколько папок, и в каждой из них около 175 файлов. Имена файлов выглядят так:

1.wav
2.wav
3.wav
......
175.wav 

Мне придется переименовать их как

A1.wav
A2.wav
A3.wav
......
A175.wav 

Другими словами, мне приходится добавлять буквы в предыдущие имена файлов.

Мне интересно, есть ли простой способ сделать это.

Версия Ubuntu — 16.10

решение1

Есть много способов, но я бы выбрал цикл «for»:

for f in *.wav ; do mv "$f" "A$f" ; done

Это просто и легко модифицируется для других нужд...

решение2

Команда пользователя prename:

$ prename -nv 's/^(.*)$/A$1/' *.wav                    
1.wav renamed as A1.wav
2.wav renamed as A2.wav
3.wav renamed as A3.wav

Это звучит просто:

  • *.wavпозволяет оболочке расширить подстановочный знак, чтобы получить список всех файлов, которые заканчиваются на .wav. Когда оболочка выполняет полную команду, компьютер будет видеть prename -nv 's/^(.*)$/A$1/' 1.wav 2.wav 3.wavи т. д. как фактическую команду.
  • На 's/^(.*)$/A$1/'самом деле это s/PATTERN/REPLACEMENTрегулярное выражение с группировкой (.*), которое позволяет нам группировать все имя файла от начала ^до конца $и ссылаться на него как $1.

Обратите внимание, что -nvпереключатели предназначены для verbose -vи dry-run -n. Если вы довольны тестовым запуском, удалите, -nчтобы применить фактическое переименование.

решение3

С использованием rename:

rename 's/([0-9]+).wav/A\1.wav/' *.wav
  • s/SEARCH-FOR/REPLACE-WITH/ within-this-files
  • ([0-9]+)содержит раздел чисел, затем мы можем использовать его снова с помощью \1.
  • A\1.wav: A+ (числовой раздел) +.wav

Связанный контент