Opération sur numero de ligne

Résolu/Fermé
needhelp - Modifié par needhelp le 7/06/2010 à 15:08
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 8 juin 2010 à 07:52
Bonjour,



J'ai lu divers sujets sur la numérotation de ligne d'un fichier qui m'ont bien aidé.
Je voudrai pouvoir afficher une ligne en faisant des opérations sur les numéros :s
Je m'explique pour que ça soit plus clair ^^

exemple :

fichier texte toto.txt contenant :

le fichier tata.txt
a bien
été enregistré
nous vous remercions
veuillez passer une
bonne fin de journée

je cherche dans le fichier tata.txt , la chaîne "a bien" en faisant :
ligne=$(grep -n 'a bien' tata.txt | cat -d:f1);

Par rapport a cette ligne où se trouve la chaîne, je souhaiterai récupérer la 3eme ligne (et nom pas le numéro) après celle-ci
Donc en gros un $ligne=$ligne+3 pour récupérer dans une variable la chaine "veuillez passer une"

Merci
A voir également:

5 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
7 juin 2010 à 15:20
Salut,

Une solution parmi d'autres avec "sed" :

jp@MDK:~/tmpfs ssh$ cat plop
le fichier tata.txt
a bien
été enregistré
nous vous remercions
veuillez passer une
bonne fin de journée

jp@MDK:~/tmpfs ssh$ ligne="a bien"

jp@MDK:~/tmpfs ssh$ var=$(sed -n '/'"${ligne}"'/{n;n;n;p}' plop)

jp@MDK:~/tmpfs ssh$ echo ${var}
veuillez passer une

jp@MDK:~/tmpfs ssh$

;-))
0
Un grand merci ça marche !

Mais j'ai un autre problème pour ça je fais un exemple plus concret :

fichier texte :

transfert de toto.txt
taille 400 ko
vitesse 10ko/s
transfert terminé
transfer de toto.txt.1
taille 400 ko
vitesse 10ko/s
transfert terminé

Donc le problème en cherchant dans le fichier la chaine qui contient "toto.txt".
Ça va m'afficher :

transfert terminé transfert terminé

En gros le fichier toto.txt.1 est la version antécédente que je garde et transfert.
A la fin en gros je voudrais dans un fichier texte :

détail du fichier toto.txt
transfert terminé

détail du fichier toto.txt.1
transfert terminé
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 895
7 juin 2010 à 15:51
jp@MDK:~/tmpfs ssh$ cat plop
transfert de toto.txt
taille 400 ko
vitesse 10ko/s
transfert terminé
transfer de toto.txt.1
taille 400 ko
vitesse 10ko/s
transfert terminé

jp@MDK:~/tmpfs ssh$ sed -n '/toto/{h;n;n;n;H;g;p}' plop
transfert de toto.txt
transfert terminé
transfer de toto.txt.1
transfert terminé

jp@MDK:~/tmpfs ssh$

;-))
0
Je t'en remercie ^^

Efficace et rapide lol !
Bonne journée !
0

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

Posez votre question
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
8 juin 2010 à 07:52
hello
une solution avec awk
$ cat a2
transfert de toto.txt
taille 400 ko
vitesse 10ko/s
transfert terminé
transfer de toto.txt.1
taille 400 ko
vitesse 10ko/s
transfert terminé 
$ 
$ awk '/toto/ {n=NR;print}; NR==n+3 {print}' a2
transfert de toto.txt
transfert terminé
transfer de toto.txt.1
transfert terminé 
$ 
0