Retourner aux forums || Retourner au forum Astuces.divers

Astuces.divers : [Terminal] Renommer une série de fichiers sous Unix

Posté par bad sheep (page perso, ) le 16 août 2001
0
Pour renommer une série de fichiers (par exemple par extension), sous linux, il existe rename. Mais quand on veut être portable, voilà comment procéder : for i in *.txt;do mv $i ${i%txt}dat ;done renommera tous les .txt en .dat par exemple. Il existe aussi d'autres méthodes de substitution (#, ##, %%). man sh pour plus d'infos :)

> Lire le message (17 commentaires, moyenne: 1,1).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

Re: Renommer une série de fichiers sous Unix

Posté par Christophe Nowicki (Jabber id, page perso, ) le 08/12/2002 à 13:43. (lien). Évalué à 1.

Euuh kel prise de tete pour rien ...
Il faut lire le man de rename et apres on peux faire la meme chause bien plus facillement :

rename 's/\.txt$/\.dat/' *.txt
avec ca on peux utiliser des regex perl ce qui est bien plus puissant que les caracteres speciaux du shell ...

  • [^]Re: Renommer une série de fichiers sous Unix

    Posté par Jack () le 18/12/2002 à 16:26. (lien). Évalué à 1.

    Faut parfois lire les astuces en entier:
    "Pour renommer une série de fichiers (par exemple par extension), sous linux, il existe rename. Mais quand on veut être portable, voilà comment procéder :"

    A part ça, ton exemple est bien sûr intéressant.

    Jack.

  • [^]Re: Renommer une série de fichiers sous Unix

    Posté par Benoît Michaux () le 27/01/2003 à 15:35. (lien). Évalué à 2.

    Moi, j'aime bien aussi:

    cat *.txt | sed 's/\(.*\).txt/mv \1.txt \1.dat/g' | sh

    Yelf

    • [^]Re: Renommer une série de fichiers sous Unix

      Posté par ben64 () le 25/03/2003 à 13:18. (lien). Évalué à 1.

      On peut de la même façon utiliser la commande basename : for i in *.txt; do mv $i $(basename $i .txt).dat; done Commande du même genre : dirname Mais c'est vrai que for i in *.txt;do mv $i ${i%txt}dat ;done est plus portable car elle n'utilise que les fonctionnalités du bash, sans faire appel à des programmes externes (excepté mv :) ). ben64

      • [^]Re: Renommer une série de fichiers sous Unix (juste un précision)

        Posté par Bapt (page perso, ) le 13/05/2003 à 15:54. (lien). Évalué à 1.

        elle n'utilise que les fonctionnalités du bash
        s/bash/sh

    • [^]Re: Renommer une série de fichiers sous Unix

      Posté par Laurent Wargon () le 07/06/2003 à 07:55. (lien). Évalué à 1.

      Géniale ta commande, mais c'est plutôt
      ls *.txt | sed 's/\(.*\)\.txt/mv \1\.txt \1\.dat/g' | sh
      il faut déspécialiser le point dans le sed

      Laurent

Re: Renommer une série de fichiers sous Unix

Posté par Gruik Man () le 03/01/2003 à 13:53. (lien). Évalué à 1.

Extension? C'est quoi une extension? Le truc qui permet de rajouter 3 caractères aux 8 caractères de base sous DOS? : p

PS: les gens civilisés parlent de suffixes : )

  • [^]Re: Renommer une série de fichiers sous Unix

    Posté par alenvers () le 16/02/2003 à 11:05. (lien). Évalué à 1.

    Nota Bene : postfix était déja pris

Re: Renommer une série de fichiers sous Unix

Posté par eddine () le 05/09/2003 à 14:46. (lien). Évalué à 1.

Comment fait on prfaire le contraire, càd renommer le prefixe ?
J'ai une série de fichier type : IMG_01.jpg, IMG_02.jpg que je souhaite renommer en image1.jpg, image2.jpg etc ....

Merci

  • [^]Re: Renommer une série de fichiers sous Unix

    Posté par Serge Schmitt (page perso, ) le 06/09/2003 à 09:14. (lien). Évalué à 1.

    Ben ça, ça m'interesse aussi, au plus haut point !
    --
    Hôplà !
    Serge Schmitt
    newbie parmi les newbies

    • [^]Re: Renommer une série de fichiers sous Unix

      Posté par account () le 10/09/2003 à 16:11. (lien). Évalué à 1.

      Remplacer le % par # :

      for i in IMG_*;do mv $i image${i#IMG_} ;done

      Ca renomme IMG_01.jpg, IMG_02.jpg en image01.jpg, image02.jpg

    • [^]Re: Renommer une série de fichiers sous Unix

      Posté par TeXitoi (Jabber id, page perso, ) le 12/05/2004 à 00:56. (lien). Évalué à 1.

      rename 's/\.[^\.]+$/\.jpg/' *

      ca change l'extention de tout les fichiers du rep courant (ne commencant par par un ".") possédant une extention (de taille une ou plus) par l'extention jpg.

Re: Renommer une série de fichiers sous Unix

Posté par bitionio (page perso, ) le 23/12/2003 à 15:18. (lien). Évalué à 1.

Quelqu'un a une idée pour pour souci ?

http://linuxfr.org/forums/9/982.html(...)

PS: à force je fais tout à la main mais bon... il m'en reste une bonne centaine...

Re: Renommer une série de fichiers sous Unix

Posté par Paul Rouget (page perso, ) le 02/05/2004 à 18:14. (lien). Évalué à 1.

Pour les utilisateurs de zsh, il existe un module zmv qui permet de renommer des fichiers en masse (à noter l'existance de zcp et zln aussi):

$ zmodload -a zmv

La seule doc que je connaisse est celle contenu dans le source du module...

  • [^]Re: Renommer une série de fichiers sous Unix

    Posté par Paul Rouget (page perso, ) le 06/05/2004 à 22:02. (lien). Évalué à 1.

    Mais j'ai jamais écrit ça !!!!
    C'est quoi ce trippe ???
    j'aurais pas laisser un mozilla ouvert quelque part moi ???

    celui qui pense avoir poster ce commentaire pourrait m'expliquer ?

    Merci...

    • [^]Re: Renommer une série de fichiers sous Unix

      Posté par calandoa () le 26/05/2004 à 08:10. (lien). Évalué à 1.

      Tu as vu Fight Club?

Doc de la command "zmv"

Posté par harbort1 () le 30/08/2004 à 21:53. (lien). Évalué à 1.

$man zshcontrib

ou bien sûr :

$man zshall

c'est facile, c'est tout à la fin ^_^

PS : je ne pouvais pas répondre au post qui parlait de zmv ... c'est pourquoi j'ai mis un nouveau commentaire

Revenir en haut de page || Retourner aux forums || Retourner au forum Astuces.divers