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 :

Substitution sed avec valeur de retour d'une fonction Bash


Sujet :

Linux

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Substitution sed avec valeur de retour d'une fonction Bash
    Bonjour, ca fait un bout de temps que je cherche un solution à ce problème, j'ai bien cherché sur le forum mais rien de similaire.

    L'objectif de ce script est de retrouver des dates écrites du style "22/04/11", de les parsers et de les substituées.

    Dans un premier temps, je me suis dirigé vers la fonction sed et le script suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #Fonction qui prend en paramètre la date trouvée par sed, et qui est 
    #supposé retourné une valeur lui correspondat
    function parseDates(){
        #Some process here with $1 (the pattern found)
        echo "dateParsed-$1-"> log.txt
        echo "newVal"
    }
    export -f parseDates
    et la commande sed suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    myCatFile=`sed -n 's/[0-3][0-9]\/[0-1][0-2]\/[0-9][0-9]/ '$(parseDates)' &/p' datefile`
    où le & est la chaine représentant la date retrouvée.
    Ce que je cherche à faire est d'appeller la fonction parseDates (ce qui fonctionne) mais de lui passer en plus en argument la date que sed vient de trouver.

    Dans mon fichier log.txt je n'obtient que le resultat suivant :
    Peut-être y a-t-il une autre solution.. Mais je trouvais celle-ci élégante.
    Merci d'avance!

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 578
    Points : 19 439
    Points
    19 439
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    parseDates "$(sed -n '/[0-3][0-9]\/[0-1][0-2]\/[0-9][0-9]/p' datefile)"
    ...
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Merci ça a fonctionné. je ne connaissait pas cette syntaxe... Weird.

Discussions similaires

  1. Problème avec valeur de retour d'une fonction
    Par ouranos21 dans le forum SQL Procédural
    Réponses: 11
    Dernier message: 20/01/2009, 08h52
  2. Réponses: 4
    Dernier message: 19/01/2009, 11h12
  3. Réponses: 5
    Dernier message: 14/06/2008, 13h30
  4. Réponses: 5
    Dernier message: 13/06/2007, 15h05
  5. Réponses: 5
    Dernier message: 18/09/2006, 14h17

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