Script unix

joel -  
antoinebe Messages postés 10 Statut Membre -
Bonjour,

J'ai un fichier unix qui's'incremente de maniere reguliere de differente données.
Je souhaiterais creer un script qui me recupere l'avant-derniere ligne de ce fichier et qui me l'envoi dans un autre.
... et un autre script qui me recupere l'avant avant (bis) derniere ligne pour egalement me l'envoyer dans un autre fichier.

Est-ce possible ? j'ai essayé avec la commande tail mais en vain ...
Merci si vous pouvez m'aider.
A voir également:

2 réponses

asevere Messages postés 13521 Statut Webmaster 426
 
Salut,

T'y était presque pourtant!

tail -2 fichier | head -1 //Avant dernière ligne
tail -3 fichier | head -1 //Avant-avant dernière ligne

++
1
antoinebe Messages postés 10 Statut Membre
 
Merci, je cherchais exactement ça :)
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

Sachant que la commande "tail" retourne par défaiut les 10 dernières lignes d'un fichier, en donnant la sortie à "sed" avec l'option "-n" et le numéro de ligne en paramètre, tu devrais t'en sortir.
[jp@Mandrake tmpfs]$ tail fichier.txt
Ceci est la ligne 9
Ceci est la ligne 10
Ceci est la ligne 11
Ceci est la ligne 12
Ceci est la ligne 13
Ceci est la ligne 14
Ceci est la ligne 15
Ceci est l'avant avant dernière ligne
Ceci est l'avant dernière ligne
Ceci est la dernière ligne

[jp@Mandrake tmpfs]$ tail fichier.txt | sed -n '8p'
Ceci est l'avant avant dernière ligne

[jp@Mandrake tmpfs]$ tail fichier.txt | sed -n '9p'
Ceci est l'avant dernière ligne

[jp@Mandrake tmpfs]$ tail fichier.txt | sed -n '$p'
Ceci est la dernière ligne

[jp@Mandrake tmpfs]$
;-))
0
asevere Messages postés 13521 Statut Webmaster 426
 
Ou bien alors, il faut inverser le fichier et prendre les lignes 2 et 3 :-)
[jp@Mandrake tmpfs]$ tac fichier.txt
Ceci est la dernière ligne
Ceci est l'avant dernière ligne
Ceci est l'avant avant dernière ligne
Ceci est la ligne 15
Ceci est la ligne 14
Ceci est la ligne 13
Ceci est la ligne 12
Ceci est la ligne 11
Ceci est la ligne 10
Ceci est la ligne 9

[jp@Mandrake tmpfs]$ tac fichier.txt | sed -n '3p'
Ceci est l'avant avant dernière ligne

[jp@Mandrake tmpfs]$ tac fichier.txt | sed -n '2p'
Ceci est l'avant dernière ligne

[jp@Mandrake tmpfs]$ tac fichier.txt | sed -n '1p'
Ceci est la dernière ligne

[jp@Mandrake tmpfs]$
--
Une belette, un lapin !?
C'est pas normal!
0
jipicy Messages postés 41342 Statut Modérateur 4 896 > asevere Messages postés 13521 Statut Webmaster
 
Ou bien alors, il faut inverser le fichier et prendre les lignes 2 et 3 :-)
Et si on passe le tout dans un "shaker", qu'on secoue bien fort, après est-ce qu'on peut retrouver l'antépénultième ligne inversée dans l'ordre croissant des aiguilles d'une montre qui retarde de 3 minutes par rapport au méridien de Greenwich village people ???
0
asevere Messages postés 13521 Statut Webmaster 426 > jipicy Messages postés 41342 Statut Modérateur
 
:D

Si tu me prete ta montre, c'est gérable...
Enfin ce ne snt pas les solutions qui manquent quoi ;)

Bonne nuit
0
se7en
 
Merci à vous
rapide et efficace c genial.
Bonne journée.
0