194 votes

Quel est le contraire de la tête? Je veux tout sauf les premières N lignes d'un fichier

Avec un fichier texte de longueur inconnue, comment puis-je lire, par exemple toutes les lignes sauf les 2 premières lignes du fichier? Je sais que tail me donnera les N dernières lignes, mais je ne sais pas ce que N est en avance.

Donc pour un fichier

 AAAA
BBBB
CCCC
DDDD
EEEE
 

Je voudrais

 CCCC
DDDD
EEEE
 

Et pour un fichier

 AAAA
BBBB
CCCC
 

J'aurais juste

 CCCC
 

291voto

Joe Enos Points 17442

tail --help donne ce qui suit:

   -n, --lines=K            output the last K lines, instead of the last 10;
                           or use -n +K to output lines starting with the Kth
 

Donc, -n +3 devrait vous donner le résultat que vous recherchez.

30voto

Mike DeMaria Points 111

En supposant que votre version de tail le supporte, vous pouvez spécifier le début de la queue après X lignes. Dans votre cas, vous feriez 2 +1.

 tail -n +3

[mdemaria@oblivion ~]$ tail -n +3 stack_overflow.txt
CCCC
DDDD
EEEE
 

16voto

janm Points 9310

Une solution simple utilisant awk:

 awk 'NR > 2 { print }' file.name
 

10voto

lhf Points 30556

Essayez sed 1,2d . Remplacez 2 si nécessaire.

9voto

Jim Lewis Points 18753

tail -n +linecount filename commencera la sortie à la ligne linecount de filename , donc tail -n +3 filename devrait faire ce que vous voulez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X