Commande tail sous Ubuntu

Résolu
Bonjour,

Alors voici ce que j'ai compris sur la commande tail : elle permet d'afficher les n dernières lignes d'un fichier avec -n comme option et n précisé en argument.
tail -n nbr_de_lignes fichier

Maintenant je médite sur quelque chose que je n'arrive pas à comprendre logiquement : soit le fichier txt qui possède 20 lignes :

tail -n 21 txt

cela affiche les 20 lignes
tail -n +1 txt

cela affiche les 20 lignes
Pas de soucis donc, hypothèse : le +1 se rajoute au nombre de lignes dont le fichier est constitué

tail -n 22 txt

cela affiche les 20 dernières lignes
Hypothèse vérifiée
tail -n +2 txt

Cela affiche les dernières lignes à partir de la 2ème ligne, mon hypothèse est fausse et je ne vois pas à quoi est rajouté ce +2...

Avec la définition on demande à afficher les +2 lignes à partir de la fin, donc les 2 dernières lignes de la fin, ce n'est pas encore le cas.

Alors comment interpréter ce +2 s'il vous plaît?
Merci pour vos futures réponses.

1 réponse

  1. Contributeur
    Salut,
    Avec la définition on demande à afficher les +2 lignes à partir de la fin
    Euh… non, avec
    -n +2
    on demande à afficher tout le fichier à partir de la 2nd ligne du fichier.

    $ cat fich 
    ligne 1
    ligne 2
    ligne 3
    ligne 4
    ligne 5
    ligne 6
    ligne 7
    ligne 8
    ligne 9
    ligne 10
    ligne 11
    ligne 12
    ligne 13
    ligne 14
    ligne 15
    ligne 16
    ligne 17
    ligne 18
    ligne 19
    ligne 20

    On affiche à partir de la ligne 15 :
    $ tail -n +15 fich 
    ligne 15
    ligne 16
    ligne 17
    ligne 18
    ligne 19
    ligne 20

    Pour afficher les 8 dernières lignes du fichier :
    $ tail -n -8 fich 
    ligne 13
    ligne 14
    ligne 15
    ligne 16
    ligne 17
    ligne 18
    ligne 19
    ligne 20
    0
    1. Mais pourquoi ne tapez-vous pas seulement :
      tail -n 8 fich 


      Mais donc + ou - ce ne sont pas des signes d'addition et de soustraction par rapport à quelque chose? Il faut juste l'admettre que + pour à partir d'une ligne du début?
      0
    2. @CrazyGeekManCe ne sont pas des opérateurs logiques?
      0
    3. Contributeur
      @CrazyGeekManOups erreur de copier/coller ;-((

      $ tail -n 8 fich
      ligne 13
      ligne 14
      ligne 15
      ligne 16
      ligne 17
      ligne 18
      ligne 19
      ligne 20
      0
    4. @CrazyGeekManExtrait du manuel de tail (
      man tail
      ) :
      -n, --lines=[+]NUM
      output the last NUM lines, instead of the last 10;
      or use -n +NUM to output starting with line NUM


      Traduction :
      -n, --lines=[+]NUM
      Renvoie les NUM dernières lignes, au-lieu des 1à dernières par défaut;
      ou, lorsque utilisé avec -n +NUM, renvoie le contenu du fichier en commençant à partir de la ligne NUM

      Pas d'histoire d'opérateur logique donc :)
      0
    5. @Utilisateur anonymeO merci ! :)
      D'accord c'est donc la syntaxe de la commande ^^
      Bon je vais devoir prendre le reflex de regarder dans le catalogue man et je dois apprendre l'anglais :D
      0