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 :

pipe et redirection entrée en même temps


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut pipe et redirection entrée en même temps
    Bonjours à tous.

    Il n'y a pas longtemps, j'ai été confronté à un problème de syntaxe :
    Je souhaitais passer une commande dont la requête était passée via l'opérateur "<<DELIMITEUR" et souhaitais en même temps faire un pipe sur le résultat. Quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    macommande <<DELIMITEUR
       un paramtre
       un autre
    DELIMITEUR | grep "un motif"
    visiblement, cette syntaxe ne fonctionne pas.
    J'ai également testé celle-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    macommande |grep "nu motif" <<DELIMITEUR
       un paramtre
       un autre
    DELIMITEUR
    Qui ne fonctionne pas non plus.

    Je m'en suis sorti en utilisant les fonctions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function fnCommande {
       macommande <<DELIMITEUR
    un paramtre
    un autre
    DELIMITEUR 
    }
    fnCommande|grep "un motif"
    Ma question donc : existe-t-il une syntaxe permettant d'utiliser en même temps la redirection "<<DELIMITEUR" et le pipe "|" sur une commande ?

    Dernier détail, ma question porte sur ksh.

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Par défaut
    Le pipe doit être sur la même ligne que la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    # cat <<EOF | grep toto
    > titi
    > toto
    > tutu
    > toto tete
    > EOF
    toto
    toto tete

  3. #3
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    Effectivement...
    Je me demande pourquoi je n'ai pas pensé à ça plus tôt ...

    Merci bien, problème résolu.

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Citation Envoyé par matafan Voir le message
    Le pipe doit être sur la même ligne que la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    # cat <<EOF | grep toto
    > titi
    > toto
    > tutu
    > toto tete
    > EOF
    toto
    toto tete
    ou utilisez des parenthèses :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ( cat <<EOF
    > titi
    > toto
    > tutu
    > toto tete
    > EOF
    > )  | grep toto
    auquel cas le pipe doit être sur la même ligne que la parenthèse fermante…

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 14/03/2012, 21h20
  2. Jongler entre plusieurs fichiers en même temps
    Par tom77380 dans le forum Général Python
    Réponses: 1
    Dernier message: 15/12/2011, 10h07
  3. Réécriture et redirection en même temps
    Par zaiim dans le forum Apache
    Réponses: 13
    Dernier message: 29/04/2010, 10h11
  4. Réponses: 2
    Dernier message: 07/12/2008, 15h32
  5. Réponses: 6
    Dernier message: 25/08/2007, 12h13

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