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 sed/find/grep pour récupérer des strings dans plusieurs noms de fichier


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 50
    Points : 34
    Points
    34
    Par défaut Script sed/find/grep pour récupérer des strings dans plusieurs noms de fichier
    Bonjour,

    Dans un script shell je souhaite mettre à jour une variable en récupérant dans un dossier une string contenu dans un nom de fichier.
    Si plusieurs fichiers sont présents, il faut que je puisse concaténer les strings dans ma variable, et si plusieurs strings identiques sont récupérées, une seule doit être copiée.

    Ex:
    J'ai un dossier
    - dossier
    |_____fichier1_TEST1
    |_____fichier2_TEST2
    |_____fichier3_TEST1

    Je souhaite mettre dans une variable :
    VARIABLE = TEST1"texte à ajouter dans ma variable"TEST2

    J'arrive à récupérer dans la sortie standard ou dans un fichier
    TEST1
    TEST2
    Mais je n'arrive pas à concaténer les deux strings et à insérer du texte additionnel.

    Merci d'avance pour votre coup de pouce.
    A+

    Jon

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 584
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 584
    Points : 19 461
    Points
    19 461
    Par défaut
    bonjour,

    en utilisant des accolades :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ string1=TEST1
    $ string2=TEST2
    $ variable="${string1}bla bla${string2}"
    $ echo "$variable"
    TEST1bla blaTEST2
    ...
    ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 50
    Points : 34
    Points
    34
    Par défaut
    Cela n'est en fait pas aussi simple.
    Pour être plus précis je peux avoir dans mon dossier ceci :

    TEST.X1.xml

    ou :

    TEST1.X1.xml
    TEST2.X2.xml
    TEST3.X1.xml

    Le but est de récupérer X1.xml ou X1.xml et X2.xml si plusieurs sont présents

    Et ensuite de mettre cela dans une variable :

    variable=data.X1.xml si un seul fichier présent
    ou
    variable=data.X1.xml,data.X2.xml si plusieurs fichiers présents (dans ce cas deux)

    Merci
    Jon

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 584
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 584
    Points : 19 461
    Points
    19 461
    Par défaut
    par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ maFonction() for param; do [ -n "$variable" ] && variable+=",data.${param#*.}" || variable="data.${param#*.}"; done
    $ maFonction TEST.X1.xml TEST.X2.xml TEST.X3.xml
    $ echo "$variable"
    data.X1.xml,data.X2.xml,data.X3.xml
    cf. man bash Remplacement des paramètres

  5. #5
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 50
    Points : 34
    Points
    34
    Par défaut
    Merci beaucoup
    Je suis débloqué et mon script tourne bien :-)

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

Discussions similaires

  1. Macro : Récupérer des données dans plusieurs onglets et fichiers
    Par roidurif dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/12/2011, 21h35
  2. Réponses: 6
    Dernier message: 28/12/2007, 22h34
  3. Récupérer des valeurs dans plusieurs variables
    Par cortex024 dans le forum ASP.NET
    Réponses: 6
    Dernier message: 26/01/2007, 15h33
  4. Réponses: 2
    Dernier message: 09/11/2006, 07h37

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