IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Script pour changer le nom des fichiers


Sujet :

Shell et commandes GNU

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 174
    Points : 113
    Points
    113
    Par défaut Script pour changer le nom des fichiers
    bonjour,
    je veux faire un script qui sert à renommer mes fichiers
    par exemple j'ai des fichiers qui s'appellent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    smoot -1 , smoot -2 , smoot script , smoot developpez
    je veux garder ce qui est près de smoot et changer que smoot avec autre chose
    par exemple le résultat devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    yassin -1 ,yassin -2 , yassin script , yassin developpez
    et merci

  2. #2
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rename 's/smoot/yassin/' *
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 174
    Points : 113
    Points
    113
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rename 's/smoot/yassin/' *
    merci bcp (y)

  4. #4
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rename "s/smoot/yassin/g" smoot*
    par exemple

    si tu n'a pas rename tu peux faire un bricolage du genre :
    # cd /tmp/smoot/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # ls -l
    total 0
    -rw-r--r--  1 root  wheel  0 Aug 30 14:42 smoot -1
    -rw-r--r--  1 root  wheel  0 Aug 30 14:42 smoot -2
    -rw-r--r--  1 root  wheel  0 Aug 30 14:42 smoot developper
    -rw-r--r--  1 root  wheel  0 Aug 30 14:42 smoot script
    # for i in smoot* ; do mv "$i" "$(echo $i | sed 's/smoot/yassin/g')" ; done                                      
    # ls -l
    total 0
    -rw-r--r--  1 root  wheel  0 Aug 30 14:42 yassin -1
    -rw-r--r--  1 root  wheel  0 Aug 30 14:42 yassin -2
    -rw-r--r--  1 root  wheel  0 Aug 30 14:42 yassin developper
    -rw-r--r--  1 root  wheel  0 Aug 30 14:42 yassin script
    #

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 174
    Points : 113
    Points
    113
    Par défaut
    Citation Envoyé par frp31 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rename "s/smoot/yassin/g" smoot*
    par exemple

    si tu n'a pas rename tu peux faire un bricolage du genre :
    # cd /tmp/smoot/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # ls -l
    total 0
    -rw-r--r--  1 root  wheel  0 Aug 30 14:42 smoot -1
    -rw-r--r--  1 root  wheel  0 Aug 30 14:42 smoot -2
    -rw-r--r--  1 root  wheel  0 Aug 30 14:42 smoot developper
    -rw-r--r--  1 root  wheel  0 Aug 30 14:42 smoot script
    # for i in smoot* ; do mv "$i" "$(echo $i | sed 's/smoot/yassin/g')" ; done                                      
    # ls -l
    total 0
    -rw-r--r--  1 root  wheel  0 Aug 30 14:42 yassin -1
    -rw-r--r--  1 root  wheel  0 Aug 30 14:42 yassin -2
    -rw-r--r--  1 root  wheel  0 Aug 30 14:42 yassin developper
    -rw-r--r--  1 root  wheel  0 Aug 30 14:42 yassin script
    #
    merci et si je veux une commande sur le dos est-ce que ça existe ?

  6. #6
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    Citation Envoyé par MR-SMOOT Voir le message
    merci et si je veux une commande sur le dos esce que sa existe ?
    peut être mais c'est pas ici qu'il faut le demander dans ce cas

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 174
    Points : 113
    Points
    113
    Par défaut
    Citation Envoyé par frp31 Voir le message
    peut être mais c'est pas ici qu'il faut le demander dans ce cas
    ah oui d'accord et merci pour le script

  8. #8
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 278
    Points : 12 726
    Points
    12 726
    Par défaut
    Bonjour,

    @Flodelarab: merci, je ne connaissais pas la commande rename.

    @frp31: Pas bien de montrer que l'on travail sous root

    Sinon, sous bash, on peut simplifier un petit peu si on a pas rename:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for i in smoot* ; do mv "$i" "${i/smoot/yassin}" ; done
    Cordialement.

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 174
    Points : 113
    Points
    113
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Bonjour,

    @Flodelarab: merci, je ne connaissais pas la commande rename.

    @frp31: Pas bien de montrer que l'on travail sous root

    Sinon, sous bash, on peut simplifier un petit peu si on a pas rename:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for i in smoot* ; do mv "$i" "${i/smoot/yassin}" ; done
    merci
    tu peux m'expliqué ça ${...} parce que je connais moi que ça $(...)

  10. #10
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    Citation Envoyé par MR-SMOOT Voir le message
    merci
    tu peux m'expliqué ça ${...} parce que je connais moi que ça $(...)
    selon le shell ${...} permet de faire des substitutions conditionnelles ou des formatages de nombres et autres actions sans faire appel a un programme comme sed ou perl ...
    utiliser donc cette methode avec prudence ... et faire un echo $SHELL avant pour être sur de ce qu'on fait.

  11. #11
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Bonjour,

    @frp31: Pas bien de montrer que l'on travail sous root
    pas faux mais
    1. quand on a des grosses b....nes on peut travailler sous root
    2. la seconde raison de travailler sous root est de faire un peu d'admin non accessible par un sudo
    3. la troisieme raison de le faire est de faire une grosse connerie....
    4. la quatrieme est de réparer la dite grosse connerie
    5. et je vais pas changer de terminal pour faire un exemple à quelque'un
    6. etc...

  12. #12
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 174
    Points : 113
    Points
    113
    Par défaut
    Citation Envoyé par frp31 Voir le message
    selon le shell ${...} permet de faire des substitutions conditionnelles ou des formatages de nombres et autres actions sans faire appel a un programme comme sed ou perl ...
    d'accord (y)

  13. #13
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 278
    Points : 12 726
    Points
    12 726
    Par défaut
    Citation Envoyé par frp31 Voir le message
    selon le shell ${...} permet de faire des substitutions conditionnelles ou des formatages de nombres et autres actions sans faire appel a un programme comme sed ou perl ...
    utiliser donc cette methode avec prudence ... et faire un echo $SHELL avant pour être sur de ce qu'on fait.
    Oui, ici, je l'ai utilisée pour faire de la substitution, mais le but premier de ${...} est de protéger le nom de la variable que l'on veut exploiter (en plus, c'est tout de même la vrai syntaxe de rappelle d'une variable).
    Par exemple, imaginons que l'on ai 3 variables avec les noms suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ foo=toto
    $ bar=titi
    $ foobar=tata
    $ echo $foobar
    tata
    $ echo ${foo}bar
    totobar
    $ echo ${foobar}
    tata
    Donc, pour leurs utilisations concernant les substitutions, oui, on doit savoir depuis quel shell on fait cela car tous ne le font soit pas du tout soit pas de la même façon, mais juste pour un rappelle de variable, on peut se permettre de toujours les mettre ou pas (c'est selon chacun)...
    Cordialement.

  14. #14
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    oui tout à fait , bien expliqué

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/07/2015, 10h59
  2. [Batch] Script ou commande dos pour changer le nom des fichiers
    Par MR-SMOOT dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 03/09/2014, 11h11
  3. un script pour Lister, Modifier, remplacer des noms de fichiers pour un upload?
    Par shadock0 dans le forum Shell et commandes POSIX
    Réponses: 2
    Dernier message: 27/09/2011, 21h47
  4. Réponses: 11
    Dernier message: 25/02/2010, 16h33
  5. Réponses: 1
    Dernier message: 13/11/2007, 16h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo