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

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2007
    Messages : 15
    Points : 8
    Points
    8

    Par défaut Commande grep/sed dans script bash avec regex

    Bonjour à tous,

    j'ai la commande suivante qui fait bien ce que je veux lorsque je l’exécute dans une console :

    grep '^\ \+100\+\ \+[0-9]\+\ \+[0-9]\+\ ' pm-3d-dose.dat | sed -e '/^\ \+[0-9]\+\ \+[0-9]\+\ \+190\ /a\ \' > toto.dat

    je veux utiliser un script pour la généraliser (à terme je vais utiliser DIALOG).

    Donc j'ai commencer le script suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    REGEX1="^\ \+${BIN}\+\ \+[0-9]\+\ \+[0-9]\+\ "
    REGEX2="/^\ \+[0-9]\+\ \+[0-9]\+\ \+${NBZ}\ /a\  \\"
    et il y a la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    grep '${REGEX1}' ${PM3D} | sed -e  '${REGEX2}' > toto.dat
    Si je fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "grep '${REGEX1}' ${PM3D} | sed -e  '${REGEX2}' > toto.dat"
    j'ai bien la commande que je veux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    grep '^\ \+100\+\ \+[0-9]\+\ \+[0-9]\+\ ' pm-3d-dose.dat | sed -e  '/^\ \+[0-9]\+\ \+[0-9]\+\ \+190\ /a\  \' > toto.dat
    mais pourtant elle s'exécute pas ! J'ai le message :
    sed: -e expression n°1, caractère 0: `{' non refermée

    Quelqu'un a une idée ?

    Merci d'avance

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

    Informations forums :
    Inscription : février 2008
    Messages : 5 443
    Points : 14 194
    Points
    14 194

    Par défaut

    Bonjour,

    les variables ne sont pas développées entre apostrophes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ var="bla bla"
    $ echo "'$var'"
    'bla bla'
    $ echo '$var'
    $var
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. sftp dans un script bash avec .netrc
    Par mehdi_oca dans le forum Linux
    Réponses: 2
    Dernier message: 02/11/2010, 22h42
  2. Servet lance script bash avec droits insuffisants
    Par teto dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 07/09/2010, 14h20
  3. écrire un script bash avec des paramètres -r, -a
    Par Balbuzard dans le forum Linux
    Réponses: 4
    Dernier message: 17/12/2009, 14h03
  4. validation input dans procedure stocker avec regex
    Par longuard dans le forum SQL Procédural
    Réponses: 0
    Dernier message: 19/10/2009, 22h49
  5. [langage] awk et sed dans script perl
    Par scoti dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2003, 19h26

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