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

Unix Discussion :

Comment fonctionne standard input "<"?


Sujet :

Unix

  1. #1
    Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Novembre 2015
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 156
    Points : 52
    Points
    52
    Par défaut Comment fonctionne standard input "<"?
    Bonsoir!

    Désolé de poser une question aussi bête pour des linuxiens avertis mais j'ai beua lire et lire des pages sur internet pour comprendre comment cette commande marche... Rien n'y fait, je ne comprends pas comment la commande qui prend ce qui précède en argument fonctionne.

    est ce que:

    est équivalent à

    ?

    Mais comment cela marche en général? (Ayez pitié d'un entendement quelque peu limité, quelques petits exemples simples me suffisent!)

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 395
    Points : 23 754
    Points
    23 754
    Par défaut
    Bonjour,

    Pas tout-à-fait. Pour faire court, la sémantique est :

    Code Shell : Sélectionner tout - Visualiser dans une fenêtre à part
    $ programme < fichier

    Code Shell : Sélectionner tout - Visualiser dans une fenêtre à part
    $ programme > fichier

    Code Shell : Sélectionner tout - Visualiser dans une fenêtre à part
    $ programme1 | programme2

    C'est intéressant car le symbole du pipe représente à la fois le tuyau à travers duquel circulent les informations, mais ressemble également à un « < > » dont les deux pans seraient « au milieu », au lieu d'être à gauche ou à droite…

    Mais concrètement :
    • Dans le premier cas, l'entrée standard du programme est lue depuis un fichier plutôt que depuis l'entrée standard du terminal (généralement le clavier) ;
    • Dans le second cas, la sortie standard est renvoyée vers un fichier plutôt que vers la sortie standard du terminal (généralement l'écran) ;
    • Dans le troisième cas, les deux programmes sont lancés en parallèle et la sortie standard du premier est immédiatement redirigée vers l'entrée standard du second, sans passer par le disque.


    Dans l'exemple qui t'intéresse, « wc » est un programme qui signifie « word count » (compte de mots). Il va analyser tout ce qu'il peut lire sur l'entrée standard et quand celle-ci sera tarie (comprendre : quand le premier programme terminera son traitement et refermera le flux), il en fera le bilan en t'affichant le nombre de lignes, le nombre de mots et le nombre de caractères lus au total. Tu peux faire varier l'affichage à l'aide d'options. « wc -l », par exemple, est extrêmement utilisé sous UNIX car cela te renvoie le nombre de lignes lues depuis l'entrée standard.

  3. #3
    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 AntoineCompagnie Voir le message

    est équivalent à

    ?
    Non, mais si tu as un problème de compréhension avec les pipes, tu peux convertir la commande en une version sensiblement équivalente qui utilise uniquement des redirections:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    head file > head.out
    wc < head.out
    Le pipe permet de s'affranchir du fichier intermédiaire head.out en faisant communiquer directement les deux programmes head et wc.

Discussions similaires

  1. [VB6>VB.NET] Comment coder "break on all errors"
    Par RiiiDD dans le forum VB.NET
    Réponses: 5
    Dernier message: 07/03/2006, 12h53

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