J'ai beaucoup de fichiers OGG ou de vagues dans différents dossiers que je veux numéro de séquence tout en gardant tout ce qui se tient derrière le nombre préfixé. L'entrée peut ressembler à cette sortie
find . | (i=0; while read f; do let i+=1; mv "$f" "${f%/*}/$(printf %04d "$i").${f##*.}"; done)
3 Réponses :
J'ai testé votre premier renommant One Dower sans l'exportation C = 0 et cela fonctionnait très bien. La bonne chose est que les deux solutions fonctionnent au dossier de travail: je peux donc exécuter le script sur différents noms de dossiers: qui est très utile car le nom des dossiers contient le nom des travaux que je souhaite numériser avec séquence. Mais il pourrait y avoir plus d'un travail - permet de dire "Hamlet1 ... 4" et "Othello ..1..4" Et comme cela, je peux exécuter le script séparément. Merci beaucoup.
Il est normal que cela fonctionne sans le exporter code>, car
c code> est créé à Perl. Je modifie la réponse. Merci d'accepter si cela pèse vos besoins en cliquant sur la barre de contrôle (✓) à côté et éventuellement également à la hausse. Si vous avez trouvé d'autres réponses utiles, veuillez les voter. L'acceptation et le droit de vote aide les futurs lecteurs. Veuillez vous reporter à L'article correspondant au centre d'aide
La numérotation séquentielle entre les dossiers peut être effectuée avec ce script Bash que j'ai trouvé ici: P>
xxx pré> Mais ce script supprime le titre que je voudrais garder. P> blockquote>
Pas aussi robuste que la réponse acceptée, mais il s'agit de la version améliorée de votre script et de
Renommer code> n'est pas disponible. P>
./myscript .
Mais cela semble contenir le nom du dossier dans le script. Et cela signifie que l'on doit changer le script pour chaque utilisation. M. Nejat Aydin Solution permet d'appeler le nom des dossiers tout en exécutant le script. Ou je manque quelque chose ici?
Merci pour ce merveilleux commentaire, j'ai mis à jour la réponse pour donner au répertoire / chemin d'accès où les fichiers sont comme des arguments.
Un script Bash pour ce travail serait le suivant: et pourrait être exécuté comme p> supposant que le script est enregistré comme < Code> renum code>. Il suffira d'imprimer des noms de fichiers source et de destination. Pour faire le déplacement réel, vous devez laisser tomber le # code> au début de la ligne
# mv -n "$ src" "$ DEST" code> après avoir assuré qu'il fonctionnera comme prévu . Notez que la commande
mv code> ne remplacera pas un fichier existant en raison de l'option
-n code>. Cela peut être souhaitable ou non. Le script imprimera un message d'avertissement et sauvera des noms de fichiers inattendus, c'est-à-dire les noms de fichiers qui ne correspondent pas au modèle spécifié dans la question. P> p>
Cette version de script fonctionne également de manière aussi pratique: une chose si: est-il possible d'ajuster le paramètre "% 04d" - de manière dynamique au nombre de fichiers? Afin que ce soit "% 04d" pour moins de 10000 "% 03d" pour moins de 1000 "% 02D" pour moins de 100?
@Peterstrawson Oui, j'ai édité le script pour cela. argc code> est le nombre d'arguments et
largeur code> est le nombre de chiffres décimaux dans
argc code>. Mais cette approche simple peut échouer si des noms de fichier ne correspondent pas au modèle (noms de fichiers qui émettraient le message d'avertissement dans le script) dans la liste des arguments. Le script peut également souffrir de la "liste d'arguments trop longue".
Utilisez Rechercher tout en lisant la boucle avec -print0 | Trier -z Stackoverflow.com/a/37210472