Opération sur numero de ligne
Résolu
needhelp
-
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
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
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:
- Opération sur numero de ligne
- Partage de photos en ligne - Guide
- Numero prive - Guide
- Numéro père noël whatsapp - Accueil - Messagerie instantanée
- Mètre en ligne - Guide
- Formulaire en ligne de meta - Guide
5 réponses
Salut,
Une solution parmi d'autres avec "sed" :
;-))
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$
;-))
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é
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é
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$
;-))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
hello
une solution avec awk
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é $