Commande tail sous Ubuntu

Résolu/Fermé
CrazyGeekMan Messages postés 873 Date d'inscription dimanche 1 novembre 2015 Statut Membre Dernière intervention 26 novembre 2024 - 23 sept. 2016 à 16:34
CrazyGeekMan Messages postés 873 Date d'inscription dimanche 1 novembre 2015 Statut Membre Dernière intervention 26 novembre 2024 - 24 sept. 2016 à 11:32
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.
A voir également:

1 réponse

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 419
23 sept. 2016 à 17:44
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
CrazyGeekMan Messages postés 873 Date d'inscription dimanche 1 novembre 2015 Statut Membre Dernière intervention 26 novembre 2024 136
23 sept. 2016 à 17:49
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
CrazyGeekMan Messages postés 873 Date d'inscription dimanche 1 novembre 2015 Statut Membre Dernière intervention 26 novembre 2024 136 > CrazyGeekMan Messages postés 873 Date d'inscription dimanche 1 novembre 2015 Statut Membre Dernière intervention 26 novembre 2024
23 sept. 2016 à 17:49
Ce ne sont pas des opérateurs logiques?
0
Utilisateur anonyme > CrazyGeekMan Messages postés 873 Date d'inscription dimanche 1 novembre 2015 Statut Membre Dernière intervention 26 novembre 2024
23 sept. 2016 à 23:31
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
CrazyGeekMan Messages postés 873 Date d'inscription dimanche 1 novembre 2015 Statut Membre Dernière intervention 26 novembre 2024 136 > Utilisateur anonyme
24 sept. 2016 à 11:32
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
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 419 > CrazyGeekMan Messages postés 873 Date d'inscription dimanche 1 novembre 2015 Statut Membre Dernière intervention 26 novembre 2024
23 sept. 2016 à 17:51
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