J'ai une bonne quantité de fichiers à renommer. Mes fichiers s'appellent sample_1.wav sample_2.wav ...
Je dois renommer chaque nom avec un nombre plus petit dans le nom, sample_1.wav
doit devenir sample_0.wav
et ainsi de suite.
J'ai essayé ce script, mais il ne maintient pas l'ordre:
#!/bin/bash
count=0
for file in *.wav
do
new=$(printf "sample_%d.wav" "$count")
mv -- "$file" "$new"
(( count++ ))
done
Merci pour l'aide
Je pense avoir fait ce que vous demandiez en utilisant Python:
#!/usr/bin/env python
import os
for i in range(0, 30): # up to the highest number of your filenames
os.system("mv sample_%i.wav sample_%i.wav" % (i+1, i))
Cela réduit le nombre après le trait de soulignement de 1 pour chacun des fichiers. Assurez-vous simplement que vous entrez le plus grand nombre de fichiers dans la deuxième entrée de range
.
Bien que Python ou Perl soit plus rapide, vous pouvez implémenter la même idée que réponse de Mart * dans le shell:
for i in {1..100}; do mv sample_$i.wav sample_$((i-1)).wav; done