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 :

shell manipulation chaînes de caractères


Sujet :

Shell et commandes GNU

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Par défaut shell manipulation chaînes de caractères
    Bonjour à tous,

    Je bute sur un problème de manipulation de noms de fichiers : j'ai des noms de fichier du genre 1119 toto.truc, 2342 toto.truc etc. et je voudrais extraire les chiffres en début de nom de fichier pour les balancer à la fin juste avant l'extension (comme 1119 toto.truc qui deviendrait toto 1119.truc).
    Je précise que la chaine au début est toujours de la même longueur.
    Je farfouille dans sed et awk mais je sèche.
    Des idées ?
    Merci

  2. #2
    Membre expérimenté Avatar de fransoo
    Inscrit en
    Novembre 2009
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 209
    Par défaut
    L'extension est-elle toujopurs la même ?
    Y a-t-il systématiquement un espace après les chiffres ?

    Les substitutions bash devraient faire l'affaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for F in * # Pour tous les fichiers du dossier courant
    do
        E=${F##*.} # extrait l'extension
        B="${F%.*}"  # nom sans extension
        mv "$F" "${B:4} ${B::4}.$E"
    done
    Si l'extension est toujours la même, pas besoin de l'extraire.

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Par défaut
    Merci de ta réponse, je vais tester illico
    Sinon, c'est toujours la même extension et l'espace après les chiffres aussi.

  4. #4
    Membre expérimenté Avatar de fransoo
    Inscrit en
    Novembre 2009
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 209
    Par défaut
    Alors ça donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for F in *.truc # Pour tous les fichiers du dossier courant
    do
        B="${F%.*}"  # nom sans extension
        mv "$F" "${B:4} ${B::4}.truc"
    done
    J'ai oublié, si c'est toujours "toto", alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for F in *.truc # Pour tous les fichiers du dossier courant
    do
        mv "$F" "toto ${F::4}.truc"
    done

  5. #5
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for F in * # Pour tous les fichiers du dossier courant
    do
        E=${F##*.} # extrait l'extension
        B="${F%.*}"  # nom sans extension
        mv "$F" "${B:6} ${B::6}.$E"
    done
    Merci encore, ça fonctionne parfaitement

Discussions similaires

  1. Manipuler chaîne de caractères
    Par roswellenshort dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 22/03/2015, 19h54
  2. [WD-2007] Manipulation Chaîne - Split - Caractères spéciaux
    Par jj37fr dans le forum VBA Word
    Réponses: 0
    Dernier message: 16/08/2012, 19h40
  3. Manipuler chaîne de caractère sous excel
    Par shakapouet dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/07/2012, 14h28
  4. Réponses: 3
    Dernier message: 07/12/2005, 10h09
  5. Etat - Manipulation de chaînes de caractères
    Par migaleb dans le forum Access
    Réponses: 3
    Dernier message: 07/12/2005, 09h55

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