8 votes

Renommer plusieurs fichiers à la fois

J'ai un tas de fichiers wav que j'ai convertis en fichiers mp3 en utilisant ffmpeg.

Maintenant, les fichiers mp3 sont tous nommés file.wav.mp3 .

Comment puis-je supprimer le .wav tout en conservant le reste du nom du fichier ? Je voudrais faire cela sur un répertoire entier en une seule fois.

1voto

cde Points 111

Lorsque dans le répertoire avec le .wav.mp3 des fichiers :

for i in *.wav.mp3; do mv "$i" "$(echo $i | sed s/.wav//g)"; done

Cela dit, vous pouvez peut-être utiliser la même chose pour votre commande ffmpeg afin de ne pas avoir à les renommer plus tard.

0voto

allo Points 571

Je veux juste ajouter une astuce :

Un très bon programme pour ce genre de tâches est emv .

Vous le lancez comme `emv .wav.mp3 et cela ouvre un éditeur. Vous pouvez alors utiliser la fonction de recherche et de remplacement. Ensuite, vous enregistrez le fichier et fermez l'éditeur et le programme renomme vos fichiers.

C'est particulièrement pratique, lorsque vous savez comment utiliser un éditeur avancé comme vim Mais même lorsque la plupart des éditeurs simples prennent en charge la fonction de recherche et de remplacement, c'est ce dont vous avez généralement besoin pour des problèmes comme le vôtre.

0voto

baponkar Points 131
#!/bin/bash
for i in *
do
 #Define the string value
 text="$i"

 # Set .wav as the delimiter
 IFS='.wav.'

 #Read the split words into an array based on space delimiter
read -a strarr <<< "$text"
mv "$i" "${strarr[0]).mp3" #changing input file name

done

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X