web-dev-qa-db-fra.com

Comment peut-je remplacer par lots d'une chaîne au début du nom de fichier avec la chaîne de fin de fichier?

Je suis à la recherche d'une commande que je peux utiliser avec le terminal de Kubuntu (Konsole).

(Edit) je me suis dit comment supprimer les derniers inutiles 13 caractères dans le nom du fichier, donc ce que le script serait si je veux remplacer " Karaoke " avec le nom de l'artiste dans le nom de fichier est " Karaoke " + espace + "titre de la chanson" + "-" + "nom de l'artiste" + .mp4?

Est-il possible de remplacer le mot " Karaoke " avec " nom de l'artiste " pour tous les fichiers dans un répertoire? Merci d'avance.

Voici les exemples de noms de fichiers Oli demandé:

Karaoke A Spoonful Of Sugar - Mary Poppins
Karaoke Ain't No Stoppin' Us Now - McFadden & Whitehead
Karaoke Ain't Nobody - Chaka Khan
Karaoke A Tisket, A Tasket - Ella Fitzgerald
3
user295082

C'est un peu sur le dessus mais ça marche ici:

$ rename 's/^Karaoke (.+) - (.+) - \w{11}\.mp4$/$2 - $1.mp4/' * -vn
Karaoke banana - cher - 12345678901.mp4 renamed as cher - banana.mp4

Vous aurez besoin de frapper le -n Sur la fin pour le faire renommer réellement des fichiers. J'ai quitté la sécurité.

Ce que nous sommes faire Voici tous les fichiers correspondant à ce modèle, capturant l'artiste et suivi de ce modèle, puis remplacent la totalité de la chose avec ces deux groupes (et certains formatage et l'extension).

Je ne peux pas prédire ce que cela ferait si vous aviez des artistes avec - dans leurs noms. Probablement rien de bon, mais des tirets simples (sans les espaces) devraient aller bien.

3
Oli