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

Linux Discussion :

Modifier un nom de fichier en bash


Sujet :

Linux

  1. #1
    Membre expert
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 3 100
    Points
    3 100
    Par défaut Modifier un nom de fichier en bash
    bonjour,
    comme précisé je débute en bash mais pas en programmation

    je voudrai savoir si il est possible de creer un script sh qui récupère le nom d'un fichier et modifie ces premieres lettres

    je m'explique, j'ai un fichier sous le nom de v1_date_heure.tar
    (biensur la date et l'heure ne sont pas connue)
    je voudrai le transformer en v2_mêmeDate_mêmHeurre.tar
    donc mon problème est comment récupéré cette date et heure

    j'espère avoir été clair

    merci de votre aide
    dam's

  2. #2
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    344
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 344
    Points : 324
    Points
    324
    Par défaut
    peut-être un truc du genre:

    old_name=`ls -1 v1_*` # en supposant qu'il n'y a qu'un seul fichier v1_date_heure.tar
    new_name=`echo $old_name | tr 'v1' 'v2'`
    mv $old_name $new_name
    Je ne l'ai pas testé, mais ça devrait faire l'affaire ... Du moins si j'ai bien compris ce que tu voulais faire.

  3. #3
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    man mv

    Sinon, suivant les distribtuions, il y a un utilitaire (rename) qui permet de renommer plein de fichiers à la fois.Il faut connaitre le format des regex de perl pour s'en servir.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  4. #4
    Membre expert
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 3 100
    Points
    3 100
    Par défaut
    impécable c'était exactement ca
    merci de ton aide

    --
    edit:
    enfet je viens de remarquer quelque chose:
    la commande echo $old_name | tr 'v1' 'v2'
    remplace tous les chiffres 1 par 2, je comprend pas du tout pourquoi...
    dam's

  5. #5
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    tr, c'est pas sed
    remplace tous les a par 1 tous les b par 2 tous les c par 3

    Pour remplacer tous les v1 par v2:

  6. #6
    Membre expert
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 3 100
    Points
    3 100
    Par défaut
    si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    new_name=`echo $old_name | sed s/v1/v2/g`
    je m'y prends mal?
    merci de ton aide
    dam's

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    presque !

    n'oublie pas les ' pour sed :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    new_name=$(echo $old_name | sed 's/v1/v2/g')
    P.S. : le $(.....) est la 'nouvelle' syntaxe POSIX de `....` (substitution de commande)
    Marc
    Slackware for ever ......
    BASH - KSH ( http://marcg.developpez.com/ksh/ )

  8. #8
    Membre expert
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 3 100
    Points
    3 100
    Par défaut
    cette fois ci ca a l'aire d'etre la bonne
    encore merci de ton aide
    dam's

Discussions similaires

  1. Modifier les noms de fichiers d'un dossier
    Par jybtiti dans le forum Général VBA
    Réponses: 1
    Dernier message: 23/08/2010, 19h08
  2. Réponses: 18
    Dernier message: 08/10/2009, 15h22
  3. Modifier un nom de fichier depuis php
    Par nimbus_77 dans le forum Langage
    Réponses: 7
    Dernier message: 18/11/2008, 19h53
  4. [PHP-JS] Modifier un Nom de fichier
    Par bzh56 dans le forum Langage
    Réponses: 2
    Dernier message: 07/11/2006, 15h29
  5. Réponses: 7
    Dernier message: 07/01/2006, 15h18

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