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 POSIX Discussion :

sed : exécuter une commande


Sujet :

Shell et commandes POSIX

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 7
    Points : 0
    Points
    0
    Par défaut sed : exécuter une commande
    Bonjour,

    Dans un fichier texte, il y a des tags de dates du type: DOD-n ou DOD+m
    où n et m sont variables et représentent un delta négatif ou positif par rapport à la date du jour (Date of the day)

    J'aimerais utiliser SED pour les transformer en: YYYY-MM-DD par rapport à la date system lors de l'execution du script.

    Linux : date -d 'x day' +%F est la commande qui va bien
    avec 'x' comme valeur numérique (négatif, positive ou nulle)

    mais voilà ce qui ne marche pas avec sed:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -e "s/DOD\([+-][0-9]*\)/`date -d '\1 day' +%F`/g" filename
    par contre ce qui fonctionne (sans partie variable) et qui n'est pas très loin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -e "s/DOD\([+-][0-9]*\)/`date -d '10 day' +%F`/g" filename
    Quelqu'un peut m'aider Merci

  2. #2
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Salut,

    C'est tout bonnement impossible avec sed

    La syntaxe exacte avec sed pour ce genre de remplacement se fait grâce au flag "e" et permet d'effectuer un remplacement de la ligne entière contenant le motif, motif qui doit lui aussi ciblé une ligne entière et non une partie de celle-ci.

    Par exemple : sed 's/.*DOD.*/date +%F/e' fichier remplacera toute la/les ligne(s) contenant "DOD" par la date du jour au format demandé.
    $ man woman
    Il n'y a pas de page de manuel pour woman.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 7
    Points : 0
    Points
    0
    Par défaut
    Merci zipe31 pour tes explications

    J'ai fais ça qui fonctionne bien mais c'est verbeux, limité et lent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    sed \
              -e "s/'DOD-0020'/`date -d '-20 day' +%F`/g" \
              -e "s/'DOD-0019'/`date -d '-19 day' +%F`/g" \
              -e "s/'DOD-0018'/`date -d '-18 day' +%F`/g" \
              -e "s/'DOD-0017'/`date -d '-17 day' +%F`/g" \
              -e "s/'DOD-0016'/`date -d '-16 day' +%F`/g" \
              -e "s/'DOD-0015'/`date -d '-15 day' +%F`/g" \
              -e "s/'DOD-0014'/`date -d '-14 day' +%F`/g" \
              -e "s/'DOD-0013'/`date -d '-13 day' +%F`/g" \
              -e "s/'DOD-0012'/`date -d '-12 day' +%F`/g" \
              -e "s/'DOD-0011'/`date -d '-11 day' +%F`/g" \
              -e "s/'DOD-0010'/`date -d '-10 day' +%F`/g" \
              -e "s/'DOD-0009'/`date -d '-9 day' +%F`/g" \
              -e "s/'DOD-0008'/`date -d '-8 day' +%F`/g" \
              -e "s/'DOD-0007'/`date -d '-7 day' +%F`/g" \
              -e "s/'DOD-0006'/`date -d '-6 day' +%F`/g" \
              -e "s/'DOD-0005'/`date -d '-5 day' +%F`/g" \
              -e "s/'DOD-0004'/`date -d '-4 day' +%F`/g" \
              -e "s/'DOD-0003'/`date -d '-3 day' +%F`/g" \
              -e "s/'DOD-0002'/`date -d '-2 day' +%F`/g" \
              -e "s/'DOD-0001'/`date -d '-1 day' +%F`/g" \
              -e "s/'DOD-0000'/`date -d '-0 day' +%F`/g" \
              -e "s/'DOD+0000'/`date -d '-0 day' +%F`/g" \
              -e "s/'DOD+0001'/`date -d '+1 day' +%F`/g" \
              -e "s/'DOD+0002'/`date -d '+2 day' +%F`/g" \
              -e "s/'DOD+0003'/`date -d '+3 day' +%F`/g" \
              -e "s/'DOD+0004'/`date -d '+4 day' +%F`/g" \
              -e "s/'DOD+0005'/`date -d '+5 day' +%F`/g" \
              -e "s/'DOD+0006'/`date -d '+6 day' +%F`/g" \
              -e "s/'DOD+0007'/`date -d '+7 day' +%F`/g" \
              -e "s/'DOD+0008'/`date -d '+8 day' +%F`/g" \
              -e "s/'DOD+0009'/`date -d '+9 day' +%F`/g" \
              -e "s/'DOD+0010'/`date -d '+10 day' +%F`/g" \
              -e "s/'DOD+0011'/`date -d '+11 day' +%F`/g" \
              -e "s/'DOD+0012'/`date -d '+12 day' +%F`/g" \
              -e "s/'DOD+0013'/`date -d '+13 day' +%F`/g" \
              -e "s/'DOD+0014'/`date -d '+14 day' +%F`/g" \
              -e "s/'DOD+0015'/`date -d '+15 day' +%F`/g" \
              -e "s/'DOD+0016'/`date -d '+16 day' +%F`/g" \
              -e "s/'DOD+0017'/`date -d '+17 day' +%F`/g" \
              -e "s/'DOD+0018'/`date -d '+18 day' +%F`/g" \
              -e "s/'DOD+0019'/`date -d '+19 day' +%F`/g" \
              -e "s/'DOD+0020'/`date -d '+20 day' +%F`/g" \
              $file > ./$filename

  4. #4
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Citation Envoyé par zipe31 Voir le message
    C'est tout bonnement impossible avec sed
    mais jouable avec awk (nawk si Solaris):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    awk '/DOD[+-][0-9]*/ {
      i=match($0,/DOD[+-][0-9]*/);
      d=substr($0,i+3,RLENGTH-3);
      command=sprintf("date -d \"%s day\" +%%F",d);
      command | getline foo
      close(command)
      gsub(/DOD[+-][0-9]*/,foo)
      print
      }
    ' filename
    ɹǝsn *sıɹɐlos*

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 7
    Points : 0
    Points
    0
    Par défaut
    Merci encore zipe31,

    Effectivement, ce script s'exécute rapidement et awk parait bien adapté

    Est-il possible d'apporter 2 évolutions :
    - il existe 2 tags distincts par ligne : dans ce cas le calcul du premier tag s'applique au 2ieme et e n'est pas correct
    - les lignes dans lesquelles les tags ne sont pas présents doivent s'afficher

    Merci

  6. #6
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Citation Envoyé par jcg2a Voir le message
    Merci encore zipe31
    de rien, mais moi c'est jlliagre ...
    Est-il possible d'apporter 2 évolutions :
    - il existe 2 tags distincts par ligne : dans ce cas le calcul du premier tag s'applique au 2ieme et e n'est pas correct
    - les lignes dans lesquelles les tags ne sont pas présents doivent s'afficher
    Pour les deux tags distincts, un exemple de ligne fournie en entrée et le résultat souhaité serait plus clair.
    ɹǝsn *sıɹɐlos*

  7. #7
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Citation Envoyé par jlliagre Voir le message
    de rien, mais moi c'est jlliagre ...
    Rendons donc à jlliagre ce qui appartient à jlliagre...

    Merci² jlliagre
    $ man woman
    Il n'y a pas de page de manuel pour woman.

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 7
    Points : 0
    Points
    0
    Par défaut
    Désolé jlliagre - est-ce un prénom ?

    voici un exemple de fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    09GT-000011AFTLD2C DOD-13DOD+5NY212123YY654321777777
    09GT-000011AFTLD2C DOD+6DOD+9NY212123YY654321777777
    09GT-000011AFTLD2C DOD+109999-12-31NY212123YY654321777777
    cette ligne qui ne contient pas de tag doit sortir en outpout

    Il est tout à fait possible de modifier la syntaxe des tags, du genre encadrer les tags par des séparateurs, par exemple: ...'DOD-13''DOD+5'...

    Est-ce que cela peut se faire ?
    Merci d'avance ! Jérôme

  9. #9
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Non jlliagre n'est pas un prénom, c'est un pseudo.

    Bon, tu as donné un exemple de fichier en entrée mais il faut aussi clarifier ce que tu souhaiterais en sortie pour ces trois lignes.
    ɹǝsn *sıɹɐlos*

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 7
    Points : 0
    Points
    0
    Par défaut
    Avec la date du jour égale à 2012-11-27

    le fichier en sortie doit être celui-là, (sur 4 lignes en fait):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    09GT-000011AFTLD2C 2012-11-142012-12-02NY212123YY654321777777
    09GT-000011AFTLD2C 2012-12-032012-12-06NY212123YY654321777777
    09GT-000011AFTLD2C 2012-12-079999-12-31NY212123YY654321777777
    cette ligne qui ne contient pas de tag doit sortir en outpout

    merci jlliagre

  11. #11
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Ca serait plus simple si la fin du champ était identifiable:

    "DOD+109999-12-31" est ambigu.
    "DOD+10 9999-12-31" ne l'est pas.
    ɹǝsn *sıɹɐlos*

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 7
    Points : 0
    Points
    0
    Par défaut
    D'accord pour un séparateur blanc ou avec des ' entre tags

    on pourrait écrire le data set:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    09GT-000011AFTLD2C 'DOD-13''DOD+5'NY212123YY654321777777
    09GT-000011AFTLD2C 'DOD+6''DOD+9'NY212123YY654321777777
    09GT-000011AFTLD2C 'DOD+10'9999-12-31NY212123YY654321777777
    cette ligne qui ne contient pas de tag doit sortir en outpout
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    09GT-000011AFTLD2C DOD-13 DOD+5NY212123YY654321777777
    09GT-000011AFTLD2C DOD+6 DOD+9NY212123YY654321777777
    09GT-000011AFTLD2C DOD+10 9999-12-31NY212123YY654321777777
    cette ligne qui ne contient pas de tag doit sortir en outpout

  13. #13
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par jlliagre Voir le message
    Bon, tu as donné un exemple de fichier en entrée mais il faut aussi clarifier ce que tu souhaiterais en sortie pour ces trois lignes.
    Attention! Ce ne sont pas 3 lignes, mais bien 4 lignes!

    Manifestement, il souhaite que la 4ème ligne sorte telle quelle, la ligne qui ne contient pas de balise et qui contient juste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cette ligne qui ne contient pas de tag doit sortir en outpout

  14. #14
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Citation Envoyé par jack-ft Voir le message
    Attention! Ce ne sont pas 3 lignes, mais bien 4 lignes!

    Manifestement, il souhaite que la 4ème ligne sorte telle quelle, la ligne qui ne contient pas de balise et qui contient juste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cette ligne qui ne contient pas de tag doit sortir en outpout
    Oui, après m'être creusé la tête un petit peu, j'avais fini par comprendre que la ligne n'était pas un commentaire, d'autant plus qu'il aurait été incorrect.

    @jcg2a: voila une solution qui requiers une séparation (espace ou n'importe quoi pourvu que ce ne soit pas un chiffre) entre la fin des champs et la suite de la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    awk '/DOD[+-][0-9]*/ {
      while(1)
      {
        i=match($0,/DOD[+-][0-9]*/);
        if(i==0) break;
        d=substr($0,i+3,RLENGTH-3);
        command=sprintf("date -d \"%s day\" +%%F",d);
        command | getline foo
        close(command)
        sub(/DOD[+-][0-9]*/,foo)
      }
      print
      next
    }
    {
      print
    }
    ' filename
    ɹǝsn *sıɹɐlos*

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 7
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par jlliagre Voir le message
    voila une solution
    Eh bien je dis Bravo , ca marche très bien

    Mille remerciements jlliagre d'avoir planché sur le problème et mis au point une solution adaptée !

    Jérôme

  16. #16
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 294
    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 294
    Points : 12 770
    Points
    12 770
    Par défaut
    Citation Envoyé par zipe31 Voir le message
    Salut,

    C'est tout bonnement impossible avec sed

    La syntaxe exacte avec sed pour ce genre de remplacement se fait grâce au flag "e" et permet d'effectuer un remplacement de la ligne entière contenant le motif, motif qui doit lui aussi ciblé une ligne entière et non une partie de celle-ci.

    Par exemple : sed 's/.*DOD.*/date +%F/e' fichier remplacera toute la/les ligne(s) contenant "DOD" par la date du jour au format demandé.
    Bonjour,
    Sous linux, la syntaxe suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo DOD-25xxx | sed 's/.*DOD\([+-][0-9]*\)/date -d "\1 day\" +%F/e'
    retourne:
    Cordialement.
    Cordialement.

  17. #17
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Salut,

    Citation Envoyé par disedorgue Voir le message
    Sous linux, la syntaxe suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo DOD-25xxx | sed 's/.*DOD\([+-][0-9]*\)/date -d "\1 day\" +%F/e'
    retourne:
    Oui, à condition que le motif soit en début de ligne, sans quoi, ça merdoie un petit peu

    Exemple de fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ cat brol 
    09GT-000011AFTLD2C DOD-13DOD+5NY212123YY654321777777
    09GT-000011AFTLD2C DOD+109999-12-31NY212123YY654321777777
    DOD-13DOD+5NY212123YY654321777777
    DOD+109999-12-31NY212123YY654321777777
    Avec ta syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ sed 's/.*DOD\([+-][0-9]*\)/date -d "\1 day\" +%F/e' brol 
    2013-02-03NY212123YY654321777777
    2314-04-01-12-31NY212123YY654321777777
    2013-02-03NY212123YY654321777777
    2314-04-01-12-31NY212123YY654321777777
    En ciblant que depuis le début du motif :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ sed 's/DOD\([+-][0-9]*\)/date -d "\1 day\" +%F/e' brol 
    sh: 1: 09GT-000011AFTLD2C: not found
     
    sh: 1: 09GT-000011AFTLD2C: not found
     
    2013-01-16DOD+5NY212123YY654321777777
    2314-04-01-12-31NY212123YY654321777777
    $ man woman
    Il n'y a pas de page de manuel pour woman.

  18. #18
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 294
    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 294
    Points : 12 770
    Points
    12 770
    Par défaut
    Salut,

    Dans le cas ou le motif n'est pas en début de ligne, on peut faire comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo yyyDOD-25xxx | sed 's/\(.*\)DOD\([+-][0-9]*\)/echo -n "\1";date -d "\2 day\" +%F/e'
    yyy2013-01-04xxx
    Cordialement.
    Cordialement.

  19. #19
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Dans le cas ou le motif n'est pas en début de ligne, on peut faire comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo yyyDOD-25xxx | sed 's/\(.*\)DOD\([+-][0-9]*\)/echo -n "\1";date -d "\2 day\" +%F/e'
    yyy2013-01-04xxx
    Merci bien
    $ man woman
    Il n'y a pas de page de manuel pour woman.

  20. #20
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 294
    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 294
    Points : 12 770
    Points
    12 770
    Par défaut
    Dans le cas précédent, s'il y a plusieurs "DOD", il n'y en a qu'un de traiter, donc voici pour le cas général (un peu plus complexe):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/DOD\([-+][0-9]*\)/`date -d "\1 day\" +%F`/g ; s/\(.*\)/echo -n \1/e'
    Cordialement.

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/02/2006, 12h43
  2. [Run]Exécuter une commande paramétrable
    Par nice dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 31/01/2006, 14h27
  3. exécuter une commande de logiciel
    Par MrsFrizz dans le forum C
    Réponses: 4
    Dernier message: 17/01/2006, 10h48
  4. exécuter une commande système à partir de sqlplus?
    Par c_moi_c_moi dans le forum Oracle
    Réponses: 24
    Dernier message: 08/11/2005, 15h11
  5. Exécuter une commande linux.
    Par casafa dans le forum Linux
    Réponses: 4
    Dernier message: 20/07/2005, 23h13

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