Script unix

Fermé
joel - 20 juil. 2005 à 11:12
antoinebe Messages postés 9 Date d'inscription vendredi 20 mai 2011 Statut Membre Dernière intervention 7 octobre 2011 - 1 oct. 2011 à 21:17
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 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
20 juil. 2005 à 11:21
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 9 Date d'inscription vendredi 20 mai 2011 Statut Membre Dernière intervention 7 octobre 2011
1 oct. 2011 à 21:17
Merci, je cherchais exactement ça :)
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
20 juil. 2005 à 11:29
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 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
20 juil. 2005 à 12:03
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 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897 > asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022
20 juil. 2005 à 12:10
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 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426 > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
20 juil. 2005 à 22:41
:D

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

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