Renommez plusieurs fichiers dans le terminal [dupliquez]

4

J'ai un fichier de 40 mp4 dans un dossier.

Chaque fichier commence par video_ . Chaque fichier est au format video_*.mp4 .

Je dois renommer tous les fichiers avec video_ supprimé au début de chaque fichier. Comment puis-je le faire depuis le terminal?

    
posée kashish 22.09.2015 - 13:50
la source

3 réponses

15

Vous pouvez le faire par une commande de terminal dans un répertoire où se trouvent ces fichiers.

rename 's/^video_//' *.mp4

Cela signifie que sélectionner tous les noms de fichiers démarrés avec video_ et remplacer video_ par rien. Je suppose que s est pour "substitut".

^ affiche le début de la chaîne. Si vous omettez ^ , la première occurrence de video_ sera supprimée où qu'elle se trouve dans la chaîne. Mais dans votre cas, cela n'a pas vraiment d'importance.

    
réponse donnée Pilot6 22.09.2015 - 13:55
la source
4
  • Utilisation de rename ( prename ):

    rename -n 's/^video_//' video_*.mp4
    

    Si vous êtes satisfait des modifications à apporter, supprimez -n pour que l'opération se produise réellement:

    rename 's/^video_//' video_*.mp4
    
  • Utilisation de l’extension de paramètre bash :

    for file in video_*.mp4; do mv -i "$file" "${file#video_}"; done
    
    • ${file#video_} est le modèle d'extension de paramètre permettant de supprimer video_ du début des noms de fichiers.

    Ou

    for file in video_*.mp4; do mv -i "$file" "${file/video_/}"; done        
    
    • Celui-ci suppose que video_ ne figure qu'une fois dans les noms de fichiers

    • ${file/video_/} est un modèle d'extension de paramètre bash qui remplacera video_ des noms de fichiers par des blancs.

réponse donnée heemayl 22.09.2015 - 13:58
la source
3

Utilisation de rename

rename 's/^video_//' *.mp4
    
réponse donnée A.B. 22.09.2015 - 13:54
la source

Lire d'autres questions sur les étiquettes