Controler le nombre de lignes à afficher à partir d'un fichier

Fermé
bloomingdals Messages postés 74 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 6 août 2013 - 16 avril 2013 à 18:35
bloomingdals Messages postés 74 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 6 août 2013 - 22 avril 2013 à 13:49
Bonsoir,

j'ai un fichier texte dont la taille est entrain d'augmenter (par un autre processus shell).
je veux, a chaque fois que 1000 nouvelles lignes sont ajoutées à ce fichier, lire ces dernières.

j'utilise cette commande shell
head -n N fichier où N designe le nombre de lignes déja lues dans l'itération précédente (je précise que N est mise à jour par un code java donc pas de probleme ici).
le probleme est que cette commande me renvoie a chaque fois tout le fichier a part les N lignes déja lues alors que moi je veux lire 1000 autres lignes à partir de la position N+1
que dois je ajouter à cette commande pour que ca soit faisable

merci
A voir également:

5 réponses

Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 259
16 avril 2013 à 19:01
Salut,
utilise tail à la place de head...

Bonne continuation !
0
bloomingdals Messages postés 74 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 6 août 2013 2
17 avril 2013 à 09:15
non c'est pas ce que je veux faire mais merci quand même
0
GMV Messages postés 68 Date d'inscription samedi 6 août 2011 Statut Membre Dernière intervention 2 novembre 2013
Modifié par GMV le 21/04/2013 à 15:37
Je ne comprends pas tout, donc en premier je dirai comme Flachy Joe, utilise tail pour lire les 1000 dernières lignes :
cat fichier |tail -1000  


sinon, tu peux aussi faire de meme avec le résultat de ton head :
head -n N fichier |tail -1000  


mais je viens de relire et je crois comprendre que tu cherches à lire ton fichier de la ligne N+1 àla ligne N+1+1000, c'est ca ? si oui, il faut d'abord les N+1+1000 premières lignes, et on prend les dernières :
head -n N+1001 fichier |tail -1000 

=>1000= (N+1+1000) - (N+1)
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
21 avril 2013 à 16:50
hello
essayer
awk -v n=$N 'NR >= n && NR < n+1000' fichier
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bloomingdals Messages postés 74 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 6 août 2013 2
22 avril 2013 à 13:49
je vais essayer ceci et je te tiendrai informé
0