811 votes

Imprimer un fichier X à sauter des lignes en Bash

J’ai un fichier très longtemps que je veux imprimer, mais sauter le premier 1e6 lignes par exemple. Je regarde dans la page de manuel de chat, mais je ne vois aucune possibilité de le faire. Je cherche une commande pour faire ceci ou un programme simple bash.

1331voto

IfLoop Points 59461

vous avez besoin de queue.

Si vous avez vraiment besoin de sauter un certain nombre de lignes, utilisez

Autrement dit, si vous voulez sauter des lignes N, vous démarrez impression ligne N +1,

Si vous voulez juste voir la dernière autant de lignes, omettre le « + » :

182voto

David Parks Points 4201

Le moyen le plus simple que j'ai trouvé pour supprimer la première ligne d'un fichier:

cat file | sed 1d

119voto

Eddie Points 27755

Si vous avez GNU queue disponible sur votre système, vous pouvez procéder comme suit :

C’est le `` caractère qui fait ce que vous voulez. Pour citer la page de manuel :

Ainsi, comme indiqué dans le commentaire, mettre +1000001 commence d’impression avec le premier élément après les premiers 1 000 000 lignes.

43voto

newtover Points 12301

Une version moins verbeuse avec AWK:

 awk 'NR > 1e6' myfile.txt
 

Mais je recommanderais d'utiliser des nombres entiers.

14voto

tuomassalo Points 2038

Juste pour proposer une alternative sed . :) Pour ignorer le premier million de lignes, essayez |sed '1,1000000d' .

Exemple:

 $ perl -wle 'print for (1..1_000_005)'|sed '1,1000000d'
1000001
1000002
1000003
1000004
1000005
 

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