Bonjour,
je fais un script pour recuperer les données d'un fichier.
le contenu de mon fichier ressemble à ça :
wmmlb02: 2009-02-04 14:01:46,517 10.10.10.10 - +33010101010 HTTP_GET 9784304400@ N/A 200 2 false N/A - - - 29 eri 21091
wmmlb02: 2009-02-04 14:01:46,517 10.10.10.10 - +33010101010 m_notifresp_ind 9784304400@ N/A 205 2 false N/A - - - 29 eri 21091
wmmlb02: 2009-02-04 14:01:46,517 10.10.10.10 - +33010101010 m_notifresp_ind 9784304400@ N/A 207 2 false N/A - - - 10.10.10.10
wmmlb02: 2009-02-04 14:01:46,517 10.10.10.10 - +33010101010 m_notifresp_ind 9784304400@ N/A 203 2 false N/A - - - 29 eri 21091
wmmlb02: 2009-02-04 14:01:46,517 10.10.10.10 - +33010101010 m_notifresp_ind 9784304400@ N/A 202 2 false N/A - - - 29 eri 21091
wmmlb03: 2009-02-04 14:15:33,585 10.10.10.10 - +33010101010 m_notification_ind 6342238308@ N/A 202 0 false N/A - - - 26 eii +332348349743/TYPE=PLMN
wmmlb02: 2009-02-04 14:01:46,517 10.10.10.10 - +33010101010 HTTPsdfsdf_GET 9784304400@ N/A 200 2 false N/A - - - 29 eri 21091
ce fichier contient des milliers de lignes comme ça.
Ce que je voudrais c'est extraire le nombre de fois où dans le fichier il y a dans une ligne HTTP_GET ou notifresp_ind et sur ces lignes là le nombre de fois où il trouve la valeur 200 ou 202. HTTP_GET et notifresp_ind se trouve à $7 et la valeur 200 ou 202 se trouve à $10.
Dans l'exemple du ci-dessus, le script devrait me retourner la 3.
Voilà ce que j'ai commencer à faire :
Pouvez-vous me filer un coup de main ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #!/bin/sh if [ -f result ] then rm result fi while read line; do echo $line > temp awk -F" " '{ if ((( $7 = "notifresp_ind" ) || ( $7 = "HTTP_GET" )) && (( $10 == "200") || ( $10 == "202"))) print $7 , $10 }' temp >> result done < ding awk 'END {print NR}' result exit
Merci beaucoup.
Cordialement,
Partager