Utiliser tail & head simultanément

Résolu
Bonjour,
comment je peut utiliser tail & head simultanément mon objectif est d'afficher la 2 éme ligne d'un fichier qui contien 3 ligne
tail -2 raprt.txt
head -2 raprt.txt
Configuration: Linux
Firefox 3.0.3

6 réponses

  1. hello
    essayer plutot
    tail +3 < fichier | head -n 3
    1
    1. Oui mais ma commande (c'est pour un exercice) doit être de la forme
      ... < fichier
      les ... étant à remplacer par une commande utilisant soit tail, soit cut, soit head.
      0
    2. Contributeur
      Avec "tail" et "head" ce n'est pas possible.
      La syntaxe donnée par "dubcek" est la seule envisageable.

      Avec une seule commande sans le "pipe" il te faut utiliser un autre outil, comme "sed" par exemple.
      0
  2. Et comment faire si l'on ne connait pas le nom du fichier à l'avance, et que l'on souhaite faire une commande qui récupère les lignes 3 à 5 par exemple d'un fichier quelconque?
    (Je pensais faire un tail +3 | head -n 2 < fichier mais ça ce fonctionne pas... :/)
    0
    1. Modérateur
      Salut,

      Essaie

      :~$ cat plop
      ligne1
      ligne2
      ligne3
      ligne4
      ligne5
      ligne6
      :~$ (tail -n +3 | head -n 3) < plop
      ligne3
      ligne4
      ligne5
      0
    2. Contributeur
      Salut,

      La syntaxe donnée par "dubcek" est la seule envisageable.
      Je savais bien qu'en disant ça, un empêcheur de tourner en rond se pointerait ;-)))

      Merchi ;-)
      0
    3. Merci!! Ca marche =D
      Quel est le role des parenthèses en fait?
      0
    4. Modérateur
      Sans parenthèse, plop serait injecté dans tail.

      Ainsi on aurait pu écrire :

      (mando@aldur) (~) $ tail -n+3 < plop | head -n3
      ligne3
      ligne4
      ligne5


      ... ou plus simplement :

      (mando@aldur) (~) $ tail -n+3 plop | head -n3
      ligne3
      ligne4
      ligne5
      0
    5. ou en une seule commande tail, head ou cut
      $ cat a1 
      1 
      2 
      3 
      4 
      5 
      6 
      7 
      8 
      9 
      $ cut -d'^V^J'  -f 3-5 < a1 
      3 
      4 
      5 
      $ 
      0
  3. Hi,

    > redfox@mandriva[192.168.1.2]$ cat plop
    ligne 1
    ligne 2
    ligne 3
    > redfox@mandriva[192.168.1.2]$ tail -n+2 plop | head -n-1
    ligne 2
    > redfox@mandriva[192.168.1.2]$


    :-) :-)
    1
    1. Modérateur
      Salut,

      [tmpfs]$ cat plop
      ligne 1
      ligne 2
      ligne 3
      
      [tmpfs]$ head -2 plop | tail -1
      ligne 2
      
      [tmpfs]$ tail -2 plop | head -1
      ligne 2
      
      [tmpfs]$

      ;-))
      1
      1. Salut,

        head -2 raprt.txt | tail -1

        Décomposons :
        "head -2 raprt.txt" prélève les 2 premières lignes du fichier raprt.txt
        "|" transmet les données au programme suivant
        "tail -1" récupère les données du pipe et ne conserve que la dernière ligne

        Tu peux aussi ajouter ">> cible.txt" si tu veux sauvegarder le résultat dans un fichier ou "| less" si la sortie est trop importante pour tenir sur l'écran.

        ++
        1