Journal Line meurt

Posté par (page perso) . Licence CC by-sa
17
2
sept.
2011

ou la victoire de la tête

Il se peut que vous ne la connaissiez pas, et pourtant cette commande était présente sur tous les systèmes Linux, je veux parler de line.

Voici sa page man, dernier vestige d'une disparue :

NAME
line - read one line

SYNOPSIS
line

DESCRIPTION
The utility line copies one line (up to a newline) from standard input to standard output. It always prints at least a newline and returns an exit status of 1 on EOF or read error.

Cette commande minimaliste faisait une seule chose mais le faisait bien, et pourtant elle va progressivement disparaître. Elle fait en effet partie du paquet util-linux, mais n'est plus compilée par défaut depuis la version 2.20. Cette décision fait suite à celle de la marquer comme deprecated.

Pourquoi ? C'est la question qui vient tout de suite à l'esprit des amateurs de cette commande, réduits maintenant à utiliser un ô combien disgracieux head -n 1. La réponse est encore plus triste :

useless, nobody uses this command, head(1) is better

Mais je l'utilisais moi !

  • # line is back

    Posté par . Évalué à 10.

    alias line="head -n 1"
    
    

    et hop !
  • # Et le builtin read des coquilles ?

    Posté par . Évalué à 3.

    J'imagine que c'est déprécié en raison de la commande intégrée read que de nombreuses (voir toutes) coquills de type SH possèdent. Par exemple, avec la coquille BASH :

    while read LINE
    do
       echo "$LINE"
    done < FichierTexte
    
    

    « Je vous présente les moines Shaolin : ils recherchent la Tranquillité de l'Esprit et la Paix de l'Âme à travers le Meurtre à Main Nue »

  • # Exemple concret de line(1)

    Posté par (page perso) . Évalué à 3.

    Mais je l'utilisais moi !

    Je ne connaissais pas cette commande, et je ne vois pas trop dans quel cas ça peut être utile.

    Tu as un exemple concret ?

    « Un animal d'une atterrante stupidité : il est persuadé que si vous ne le voyez pas, il ne vous voit pas non plus » (H2G2)

    • [^] # Re: Exemple concret de line(1)

      Posté par . Évalué à 5.

      là où tu utilise "head -1"
      du coup ce n'est peut être pas le moment de procéder au remplacement.

      • [^] # Re: Exemple concret de line(1)

        Posté par . Évalué à 1.

        Bah même pas en fait "head -1 /etc/inittab" me donne la première ligne de inittab.

        Tandis que line /etc/inittab ne me donne rien et attend du texte. J'avoue que je ne vois pas trop l'intérêt...

        Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

      • [^] # Re: Exemple concret de line(1)

        Posté par . Évalué à 9.

        Oui, et puis il faut aussi conserver line2(1), le binaire qui affiche les deux premières lignes d'un fichier.
        Puis line3 et line4 etc.

          find /usr/bin | wc -l
          *killed* out of memory
        
        
      • [^] # Re: Exemple concret de line(1)

        Posté par (page perso) . Évalué à 1.

        là où tu utilise "head -1"

        Ça ne m'avance pas du tout pour comprendre l'utilité dans un script…

        « Un animal d'une atterrante stupidité : il est persuadé que si vous ne le voyez pas, il ne vous voit pas non plus » (H2G2)

        • [^] # Re: Exemple concret de line(1)

          Posté par (page perso) . Évalué à 2.

          J’ai utilisé « line » dans des scripts lorsque que je voulais traiter des lignes les unes après les autres, comme dans l’exemple suivant dont l’intérêt est fabuleusement prodigieux :

          while myline="`line`" ; do
            echo "$myline"
          done
          
          

          Je ne sais pas comment j’avais appris l’existence de cette commande. Dans ce contexte elle a quand-même plus d’allure qu’un « head -n 1 », mais sera avantageusement remplacée par un « read myline » intégré au shell et tout aussi compatible POSIX.

          • [^] # Re: Exemple concret de line(1)

            Posté par . Évalué à 1.

            Pour ce genre d'usage il vaut mieux utiliser read...

            while read f; do
              echo "$f"
            done
            
            

            Ça permet de diminuer le nombre de processes à forker, donc c'est plus rapide, efficace, bref, plus mieux.

  • # vie et mort d'un outil

    Posté par (page perso) . Évalué à 8.

    Dans le même genre, plus de pièces pour la Peugeot 203... Mais je l'utilisais moi !

    Plus de pilote pour Voodoo 3DFX dans Mesa 7.12 ... Mais je l'utilisais moi !

    Plus de pilori dans le centre de mon village... Mais je l'utilisais moi !

    ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

    • [^] # Re: vie et mort d'un outil

      Posté par . Évalué à 3.

      moi je cherche un Pentium III mobilile. ça existe plus cette bête :(

      • [^] # Re: vie et mort d'un outil

        Posté par . Évalué à 2.

        Moi je cherche une carte mère bi-CPU pour Pentium II.

        Non, j'utiliserai pas un dual-core, na.

        THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.

      • [^] # Re: vie et mort d'un outil

        Posté par (page perso) . Évalué à 3.

        Gagné, j'en ai un, avec speedstep 600/866MHz. Tu le veux vraiment?

        ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

    • [^] # Re: vie et mort d'un outil

      Posté par . Évalué à 6.

      Pour la 203 et la Voodoo désolé, on ne peut rien faire.

      Mais si tu tiens tant à ton pilori, on peut venir s'occuper de toi et du pilori en même temps!

    • [^] # Re: vie et mort d'un outil

      Posté par . Évalué à 4.

      Plus de pilori dans le centre de mon village... Mais je l'utilisais moi !

      Je serai curieux de connaitre l'usage que tu en faisais :-)

    • [^] # Re: vie et mort d'un outil

      Posté par (page perso) . Évalué à 3.

      C'est triste. Heureusement que tout les domaines n'évoluent pas comme ça et que mon S63 à cadran fonctionne encore sur la ligne FT, que la diffusion radio analogique existe encore, que les grandes surfaces vendent encore du SP95 normal au lieu du SP95E10.

      • [^] # Re: vie et mort d'un outil

        Posté par . Évalué à 1.

        Heureusement [...] que les grandes surfaces vendent encore du SP95 normal au lieu du SP95E10.

        Tu veux dire du SP98 !
        Mais ça m’arrangerait qu’il y ait du 97...

        Théorie du pot-au-feu : « Tout milieu où existe une notion de hauteur (notamment les milieux économique, politique, professionnels) se comporte comme un pot-au-feu : les mauvaises graisses remontent. »

  • # Pas POSIX

    Posté par (page perso) . Évalué à 10.

    line n'est pas POSIX, head l'est, ceci explique cela. Pour cette raison, line n'est pas portable, donc c'est aussi bien comme ça.

    • [^] # Re: Pas POSIX

      Posté par (page perso) . Évalué à 2.

      Je ne vois pas pourquoi line ne serait pas portable. Pas porté, je veux bien croire, mais pas portable j'ai un gros doute.

      « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

      • [^] # Re: Pas POSIX

        Posté par (page perso) . Évalué à 5.

        Utiliser line dans un script n'est pas portable.

      • [^] # Re: Pas POSIX

        Posté par (page perso) . Évalué à 5.

        Je voulais bien entendu dire « l'utilisation de line dans un script n'est pas portable », désolé pour le raccourci.

      • [^] # Re: Pas POSIX

        Posté par . Évalué à 3.

        Je pense qu'utiliser line dans un script n'est pas portable.

        Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

    • [^] # Re: Pas POSIX

      Posté par . Évalué à 0.

      Utiliser line dans un script n'est pas portable (à confirmer cependant).

  • # Jeu de mot pourri du vendredi

    Posté par . Évalué à 10.

    N'oublions pas non plus que line était aussi le symbole de l'onanisme sous Unix, car comme chacun sait, line est branlable.

    (désolé)

    Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

  • # nobody uses head(1), sed(1) is better

    Posté par (page perso) . Évalué à 7.

    réduits maintenant à utiliser un ô combien disgracieux head -n 1

    Meuh non, il y a aussi sed 1q, c’est tout de suite beaucoup plus joli.

  • # Et ddate ?

    Posté par (page perso) . Évalué à 6.

    Non mais le mainteneur veut aussi retirer ddate :

    $ ddate
    Today is Sweetmorn, the 27th day of Bureaucracy in the YOLD 3177

    Par contre, j'ai jamais trop su à quoi ça sert :)

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.