VIVEZ LE
FOOTBALL !

Posez votre question Signaler

UNIX grep sur une seule ligne [Résolu]

gormoth - Dernière réponse le 4 mars 2010 à 11:59
Bonjour,
Je cherche à faire un reporting intelligent d'un fichier texte présent sous la forme :
ville:Monaco
[INFO] BLABLA
[ERROR] BLABLA
ville:Dubaï
[INFO] BLABLA
[ERROR] BLABLA
[ERROR] BLABLA
[ERROR] BLABLA
ville:Djibouti
[INFO] BLABLA
[ERROR] BLABLA
et donc qui va me permettre de me compter le nombre d'erreurs en fonction du nom de la ville ! (tout un programme)
j'ai fait ca mais ca ne match pas du tout
for ville in `cat test.txt | grep ville | cut -d ':' -f 2`
do
echo "$host"
while read line
do
AVERAGE="`cat $line | grep "ERROR" | awk '{print $4}'`"
if [ "$AVERAGE" = "[ERROR]" ]
then
COUNT=$((++COUNT))
echo "$COUNT"
fi
done < test.txt
echo "$COUNT"
done
echo "$AVERAGE"
le echo "$AVERAGE" me donne la liste de tout les [ERROR] et ne prend pas le grep sur la ligne en cours de lecture, si quelqu'un aurait déjà une sytaxe pour ca
Lire la suite 

UNIX grep sur une seule ligne »

2 réponses
Réponse
+0
moins plus
hello
quelque chose comme ça ?
$ awk '/ville/ {split($0,v,":");err[v[2]]=0} ; /ERROR/ {err[v[2]]++;e[i++]=$0} ; END{for (n in err)print n,err[n];for(n in e)print e[n]}' fichier
Monaco 1
Djibouti 1
Dubaï 3
[ERROR] BLABLA
[ERROR] BLABLA
[ERROR] BLABLA
[ERROR] BLABLA
[ERROR] BLABLA 
$ 
Ajouter un commentaire
Réponse
+0
moins plus
Super, ca m'a bien aidé, il a juste fallu que je modifie certaines petites info
Ajouter un commentaire
Ce document intitulé « UNIX grep sur une seule ligne » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?