Я использовал Sound Juicer для копирования аудио CD для книги по изучению языка, чтобы я мог слушать их на своем Android. Однако Sound Juicer, похоже, имеет возможность нумеровать файлы только без ведущих нулей. Например, так:
track_1.mp3
track_10.mp3
track_11.mp3
Это приводит к некоторой путанице в упорядочивании файлов на моем музыкальном плеере. Поэтому я хочу добавить несколько нулей к имени, чтобы они были упорядочены правильно, как здесь:
track_01.mp3
track_02.mp3
track_03.mp3
Как мне этого добиться? Я пробовал использовать GPRename, но хотя у него есть возможность добавлять числа, у него, похоже, нет опций для добавления ведущих нулей.
Есть ли лучшая программа или что-то, что я могу сделать в командной строке?
Я предполагаю, что вам просто нужно переименовать файлы 1-9, так как это те, которые нуждаются в заполнении. Есть несколько способов сделать это.
Вы можете выполнить следующую команду:
for n in $(seq 9); do mv track_$n.mp3 track_0$n.mp3; done;
Это переименует дорожки track_1.mp3
- track_9.mp3
в track_01. mp3
- track_09.mp3
.
Чтобы разбить его, это выглядит так:
for n in $(seq 9)
do
mv track_$n.mp3 track_0$n.mp3
done
для n в $ (seq 9)
: для каждого числа на выходе команда seq 9
, которая представляет собой список только чисел от 1 до 9, do
, mv track_ $ n.mp3 track_0 $ n.mp3
: это это фактическая команда, которая переименовывает файлы. Он заменяет значение n
, повторяя все числа. Таким образом, выполняется mv track_1.mp3 track_01.mp3
, mv track_2.mp3 track_02.mp3
до последнего номера, равного 9. В приведенном ниже сценарии переименования файлов указан каталог. Он вычисляет количество необходимых начальных нулей, независимо от количества файлов (если> 100, необходимо больше нулей), и автоматически переименовывает файлы.
Чтобы использовать его,
скопируйте приведенный ниже сценарий в пустой файл, в разделе заголовка задайте каталог источника, префикс (в данном случае «track-») и расширение файлов, которые вы хотите переименовать. Сохраните его как rename.py и запустите с помощью команды:
python3 /path/to/script.py
Сценарий:
#!/usr/bin/env python3
import shutil
import os
sourcedir = "/path/to/sourcedir"
prefix = "track_"
extension = "mp3"
files = [(f, f[f.rfind("."):], f[:f.rfind(".")].replace(prefix, "")) for f in os.listdir(sourcedir) if f.endswith(extension)]
maxlen = len(max([f[2] for f in files], key = len))
for item in files:
zeros = maxlen - len(item[2])
shutil.move(sourcedir+"/"+item[0], sourcedir+"/"+prefix+str(zeros*"0"+item[2])+item[1])
Конечно, есть много способов сделать это. Вы можете, например:
Поместить это в цикл:
#!/bin/bash
item="track_1.mp3"
part1=`echo $item | awk -F_ '{print $1}'`
part2=`echo $item | awk -F_ '{print $2}'`
part2a=`echo $part2 | awk -F. '{print $1}'`
part2b=`echo $part2 | awk -F. '{print $2}'`
number=`printf "%02d" $part2a`
seperator="_"
newname="$part1$seperator$number.$part2b"
echo $newname
Цикл:
#!/bin/bash
for item in track_1.mp3 track_10.mp3 track_11.mp3
do
part1=`echo $item | awk -F_ '{print $1}'`
part2=`echo $item | awk -F_ '{print $2}'`
part2a=`echo $part2 | awk -F. '{print $1}'`
part2b=`echo $part2 | awk -F. '{print $2}'`
number=`printf "%02d" $part2a`
seperator="_"
newname="$part1$seperator$number.$part2b"
echo "Renaming $item -> $newname"
mv $item $newname
done
enter code here
GPRename автоматически вставит ноль, если вы переименовываете 10 или более файлов (два, если вы переименовываете 100 или более, и т. Д.) При использовании числовой функции. Просто убедитесь, что Автозаполнение нуля
включено в меню Параметры
.
Создайте сценарий, который будет работать как команда .
Сделайте этот файл в каталоге, в котором вы отслеживаете файл.
Сделать вот так
touch change
chmod + x изменить
изменение vim
В нем напишите
#! / Bin / bash
п = 0
для м в {00 .. 99}
делать
mv track_ $ n.mp3 track_ $ m
п = `expr $ n + 1`
сделанный