J'ai utilisé Sound Juicer pour extraire un CD d’audio pour un livre d’apprentissage des langues afin de pouvoir les écouter sur mon Android. Toutefois, Sound Juicer ne semble avoir la possibilité de numéroter que des fichiers sans zéros. Comme ça:
track_1.mp3
track_10.mp3
track_11.mp3
Cela conduit à des commandes confuses sur mon lecteur de musique. Donc, je veux ajouter des zéros au nom, pour qu'ils soient correctement ordonnés, comme ceci:
track_01.mp3
track_02.mp3
track_03.mp3
Comment puis-je accomplir cela? J'ai essayé d'utiliser GPRename, mais s'il a la possibilité d'ajouter des chiffres, il ne semble pas avoir d'options pour l'ajout de zéros non significatifs.
Y at-il un meilleur programme ou quelque chose que je peux faire en ligne de commande?
Je suppose qu'il vous suffit de renommer les fichiers 1 à 9, car ce sont ceux-là qui nécessitent un remplissage. Il y a plusieurs façons de le faire.
Vous pouvez exécuter la commande ci-dessous:
for n in $(seq 9); do mv track_$n.mp3 track_0$n.mp3; done;
Ceci renommera les pistes track_1.mp3
- track_9.mp3
en track_01.mp3
- track_09.mp3
.
Pour le décomposer, cela ressemble à ceci:
for n in $(seq 9)
do
mv track_$n.mp3 track_0$n.mp3
done
for n in $(seq 9)
: pour chaque nombre figurant dans le résultat de la commande seq 9
, qui est une commande ne répertoriant que les nombres 1 à 9, do
,mv track_$n.mp3 track_0$n.mp3
: c'est la commande qui renomme les fichiers. Il substitue la valeur de n
en parcourant tous les nombres. Donc, il fait mv track_1.mp3 track_01.mp3
, mv track_2.mp3 track_02.mp3
, jusqu'au dernier numéro qui est 9.Le script ci-dessous pour renommer les fichiers est un répertoire. Il calcule le nombre de zéros non significatifs nécessaires, quel que soit le nombre de fichiers (si> 100, davantage de zéros sont nécessaires) et renomme automatiquement les fichiers.
Pour l'utiliser
copiez le script ci-dessous dans un fichier vide, dans la section de tête, définissez le répertoire source, le préfixe ("track-" dans ce cas) et l'extension de fichier des fichiers que vous souhaitez renommer. Enregistrez-le sous rename.py et exécutez-le à l'aide de la commande suivante:
python3 /path/to/script.py
Le scénario:
#!/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])
Créez un script qui fonctionnera comme un commande.
Faites ce fichier sur le répertoire où vous suivez le fichier existe.
Fait comme ça
touch change
chmod +x change
vim change
Dans cette écriture
#!/bin/bash
n=0
for m in {00 .. 99}
do
mv track_$n.mp3 track_$m
n=`expr $n + 1``
done
GPRename insérera automatiquement un zéro si vous renommez 10 fichiers ou plus (deux si vous renommez 100 ou plus, etc.) lorsque vous utilisez la fonction numérique. Assurez-vous simplement que Zero auto-fill
est activé dans le menu Options
.
Bien sûr, il y a plusieurs façons de le faire. Vous pouvez par exemple:
Mettez ceci dans une boucle:
#!/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
La boucle:
#!/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