Problème d'extraction d'infos dans un fichier
Résolu/Fermé
rookie_man
-
8 avril 2009 à 16:11
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 8 avril 2009 à 18:30
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 8 avril 2009 à 18:30
A voir également:
- Problème d'extraction d'infos dans un fichier
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Ouvrir un fichier .bin - Guide
- Fichier host - Guide
4 réponses
Par exemple, j'ai utilisé grep comme suit:
grep "loss" *ping* > "truc.txt"
Cette commande va m'afficher dans le fichier truc.txt toutes les lignes contenant le mot "loss", en l'occurence ici:
Packets: Sent = 20, Received = 19, Lost = 1 (5% loss),
De même, la même commande avec "Minimum" comme mot-clé me donnera la troisième ligne avec grep.
Le problème est que je souhaite récupérer le chiffre précédent loss avec les infos sur le min et le reste et ce dans la même ligne. Ainsi, j'aurai un fichier tout propre qui contiendrai pour un même fichier ping les infos que je souhaite...Je pense que ça doit être possible vu qu'il y a des flags entourant les termes que je souhaite...
En espérant être clair et que vous puissiez m'aider.
grep "loss" *ping* > "truc.txt"
Cette commande va m'afficher dans le fichier truc.txt toutes les lignes contenant le mot "loss", en l'occurence ici:
Packets: Sent = 20, Received = 19, Lost = 1 (5% loss),
De même, la même commande avec "Minimum" comme mot-clé me donnera la troisième ligne avec grep.
Le problème est que je souhaite récupérer le chiffre précédent loss avec les infos sur le min et le reste et ce dans la même ligne. Ainsi, j'aurai un fichier tout propre qui contiendrai pour un même fichier ping les infos que je souhaite...Je pense que ça doit être possible vu qu'il y a des flags entourant les termes que je souhaite...
En espérant être clair et que vous puissiez m'aider.
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
8 avril 2009 à 16:54
8 avril 2009 à 16:54
Salut,
[tmpfs]$ cat plop Packets: Sent = 20, Received = 19, Lost = 1 (5% loss), Approximate round trip times in milli-seconds: Minimum = 4.10ms, Maximum = 11.79ms, Average = 9.72ms, Jitter Statistical = 1.49ms [tmpfs]$ cat plop2 Packets: Sent = 20, Received = 19, Lost = 1 (10% loss), Approximate round trip times in milli-seconds: Minimum = 5.20ms, Maximum = 22.79ms, Average = 4.72ms, Jitter Statistical = 3.49ms [tmpfs]$ cat foo.sed #n 1 s/.*(\(.*%\).*/\1/ h n n s/[^=]*= \([^,]*\),[^=]*= \([^,]*\),[^=]*= \([^,]*\),[^=]*= \([^,]*\)/\1 \2 \3 \4/ H g s/\n/ / p [tmpfs]$ sed -s -f foo.sed plop* > final [tmpfs]$ cat final 5% 4.10ms 11.79ms 9.72ms 1.49ms 10% 5.20ms 22.79ms 4.72ms 3.49ms [tmpfs]$;-))
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 621
8 avril 2009 à 17:42
8 avril 2009 à 17:42
hello
un p'tit awk
$ cat file
Packets: Sent = 20, Received = 19, Lost = 1 (5% loss),
Approximate round trip times in milli-seconds:
Minimum = 4.10ms, Maximum = 11.79ms, Average = 9.72ms, Jitter Statistical = 1.49ms
Packets: Sent = 20, Received = 19, Lost = 1 (10% loss),
Approximate round trip times in milli-seconds:
Minimum = 5.20ms, Maximum = 22.79ms, Average = 4.72ms, Jitter Statistical = 3.49ms
$ awk 'BEGIN {FS="[(%=,]"} /^Packet/ {loss=$7} /^Minimum/ {print loss "%",$2, $4, $6, $8}' < file
5% 4.10ms 11.79ms 9.72ms 1.49ms
10% 5.20ms 22.79ms 4.72ms 3.49ms
un p'tit awk
$ cat file
Packets: Sent = 20, Received = 19, Lost = 1 (5% loss),
Approximate round trip times in milli-seconds:
Minimum = 4.10ms, Maximum = 11.79ms, Average = 9.72ms, Jitter Statistical = 1.49ms
Packets: Sent = 20, Received = 19, Lost = 1 (10% loss),
Approximate round trip times in milli-seconds:
Minimum = 5.20ms, Maximum = 22.79ms, Average = 4.72ms, Jitter Statistical = 3.49ms
$ awk 'BEGIN {FS="[(%=,]"} /^Packet/ {loss=$7} /^Minimum/ {print loss "%",$2, $4, $6, $8}' < file
5% 4.10ms 11.79ms 9.72ms 1.49ms
10% 5.20ms 22.79ms 4.72ms 3.49ms
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
8 avril 2009 à 17:54
8 avril 2009 à 17:54
Salut,
Je me doutais qu'il y avait effectivement plus simple avec awk, mais bon je maitrise mieux sed ;-))
PS. T'as fini de me taper mes fichiers faignasse ;-)))
Je me doutais qu'il y avait effectivement plus simple avec awk, mais bon je maitrise mieux sed ;-))
PS. T'as fini de me taper mes fichiers faignasse ;-)))
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 621
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
8 avril 2009 à 18:28
8 avril 2009 à 18:28
j'optimise les synergies grâce à la convivialité du copier/coller :-)
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
>
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
8 avril 2009 à 18:30
8 avril 2009 à 18:30
Encore un Perlien en devenir ;-))