Commande tail sous Ubuntu

Résolu
CrazyGeekMan Messages postés 971 Statut Membre -  
CrazyGeekMan Messages postés 971 Statut Membre -
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. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    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. CrazyGeekMan Messages postés 971 Statut Membre 140
       
      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
      1. CrazyGeekMan Messages postés 971 Statut Membre 140 > CrazyGeekMan Messages postés 971 Statut Membre
         
        Ce ne sont pas des opérateurs logiques?
        0
      2. Utilisateur anonyme > CrazyGeekMan Messages postés 971 Statut Membre
         
        Extrait 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
      3. CrazyGeekMan Messages postés 971 Statut Membre 140 > Utilisateur anonyme
         
        O 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
      4. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501 > CrazyGeekMan Messages postés 971 Statut Membre
         
        Oups 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