helo need for data

Dear All,

I am sorry i am posting again my question . Please help me rather than getting angry at me ...

I want to find out number of fails from different files ..

The files are generated in diffenent directories .The directories are created date wise .

Example :
/users/testsuite/appl/2006-01-20/
|------devel/
|-----via1/run.log
|-----via2/run.log

The file run.log contains fails . The fails record is started with ! .

I need output like this :

version :devel
via1 - 10 fails
via2 - 15 fails

version :9
sun : 5 fails
linux - 18 fails

pls help me to write this script

thanks in advance

Paste sample of you input file.

2006-01-23 05:48:47 #### Testsuite started
2006-01-23 05:48:49 (SiCat8_for_YRS: 1/526) Running daily/DB/CmdLn/CmdLn1.exp ...
2006-01-23 05:49:39 (SiCat8_for_YRS: 2/526) Running daily/DB/CmdLn/CmdLn2.exp ...
2006-01-23 05:49:42 (SiCat8_for_YRS: 3/526) Running daily/DB/CmdLn/CmdLn3.exp ...
2006-01-23 05:49:45 (SiCat8_for_YRS: 4/526) Running daily/DB/CmdLn/cliCS.exp ...
2006-01-23 05:49:47 (SiCat8_for_YRS: 5/526) Running daily/DB/CmdLn/comma.exp ...
2006-01-23 05:49:50 (SiCat8_for_YRS: 6/526) Running daily/DB/CmdLn/no_license.exp ...
2006-01-23 05:49:53 (SiCat8_for_YRS: 7/526) Running daily/DB/CmdLn/parfile.exp ...
2006-01-23 05:49:56 (SiCat8_for_YRS: 8/526) Running daily/DB/CmdLn/range.exp ...
2006-01-23 05:49:59 (SiCat8_for_YRS: 9/526) Running daily/DB/Filter/Filter1.exp ...
2006-01-23 05:50:02 (SiCat8_for_YRS: 10/526) Running daily/DB/SFM/SFMDoublePointHole.exp ...
2006-01-23 05:50:05 (SiCat8_for_YRS: 11/526) Running daily/DB/SFM/SFMDoublePointHole2.exp ...
2006-01-23 05:50:08 (SiCat8_for_YRS: 12/526) Running daily/DB/SFM/SFMDoublePointHull.exp ...
2006-01-23 05:50:11 (SiCat8_for_YRS: 13/526) Running daily/DB/SFM/SFMDoublePointHull2.exp ...
2006-01-23 05:50:15 (SiCat8_for_YRS: 14/526) Running daily/DB/SFM/SFMSelfIntersection.exp ...
2006-01-23 05:50:18 (SiCat8_for_YRS: 15/526) Running daily/DB/SFM/SFMSpeedAllAngleFlat.exp ...
2006-01-23 05:50:45 (SiCat8_for_YRS: 16/526) Running daily/DB/SFM/SFMSpeedManhatten.exp ...
2006-01-23 05:50:55 (SiCat8_for_YRS: 17/526) Running daily/DB/SFM/SFMThread.exp ...
2006-01-23 05:51:25 (SiCat8_for_YRS: 18/526) Running daily/DB/SFM/scanHoleConnect.exp ...
! 2006-01-23 05:51:28 (SiCat8_for_YRS) daily/DB/SFM/scanHoleConnect.exp: 2 fail(s).
2006-01-23 05:51:28 (SiCat8_for_YRS: 19/526) Running daily/DB/TechDB/load.exp ...
2006-01-23 05:51:31 (SiCat8_for_YRS: 20/526) Running daily/DB/TechDB/query.exp ...
2006-01-23 05:51:34 (SiCat8_for_YRS: 21/526) Running daily/DB/TechDB/remove.exp ...
2006-01-23 05:51:37 (SiCat8_for_YRS: 22/526) Running daily/DB/TechDB/save.exp ...
2006-01-23 05:51:40 (SiCat8_for_YRS: 23/526) Running daily/DB/area/area0.exp ...
2006-01-23 05:51:42 (SiCat8_for_YRS: 24/526) Running daily/DB/area/area1.exp ...
2006-01-23 05:51:45 (SiCat8_for_YRS: 25/526) Running daily/DB/area/area2.exp ...
2006-01-23 05:52:41 (SiCat8_for_YRS: 26/526) Running daily/DB/area/area3.exp ...
2006-01-23 05:53:14 (SiCat8_for_YRS: 27/526) Running daily/DB/area/area_text.exp ...
2006-01-23 05:53:18 (SiCat8_for_YRS: 28/526) Running daily/DB/attach/attach_density-insane.exp ...
2006-01-23 05:53:46 (SiCat8_for_YRS: 29/526) Running daily/DB/attach/attach_density.exp ...
2006-01-23 05:54:00 (SiCat8_for_YRS: 30/526) Running daily/DB/attach/attach_property-insane.exp ...
! 2006-01-23 05:54:04 (SiCat8_for_YRS) daily/DB/attach/attach_property-insane.exp: 4 fail(s).
2006-01-23 05:54:04 (SiCat8_for_YRS: 31/526) Running daily/DB/attach/attach_property.exp ...
! 2006-01-23 05:54:06 (SiCat8_for_YRS) daily/DB/attach/attach_property.exp: 2 fail(s).
2006-01-23 05:54:06 (SiCat8_for_YRS: 32/526) Running daily/DB/attach/attach_redundancy-insane.exp ...
2006-01-23 05:54:35 (SiCat8_for_YRS: 33/526) Running daily/DB/attach/attach_redundancy.exp ...
2006-01-23 05:55:16 (SiCat8_for_YRS: 34/526) Running daily/DB/bool/InternalMultiCrossing/hole_1.exp ...

Does devel appear in your log file at all ?

See this

[/tmp]$ cat failure.ksh
#! /bin/ksh
#
TOTAL=0
FAIL=0
while read line
do
if [[ "$line" == *!* ]] ; then
FAIL=$(echo "$line" | sed -n -e 's_!.*: \([1-9][0-9]*\) fail.*_\1_p')
TOTAL=$(($TOTAL+$FAIL))
fi ;
done < failure.log

echo "$TOTAL fails"
[/tmp]$ ./failure.ksh 
8 fails
[/tmp]$ 

Try this

#!/bin/ksh
num=`sed -n -e 's/^!.*$/&/p' xyz | sed 's/.*: \([0-9]*\) fail(s)./\1/'`
TOTAL=0
for i in $num
do
(( TOTAL = TOTAL + i )) 
done
print "Total number of failures is $TOTAL"
/export/home/test/mons>xyz.sh
Total number of failures is 8

This will list you the number of failures in all the run.log files in all the directories from the current path

#!/bin/ksh
for j in `find . -name "run.log" -print`
do
TOTAL=0
num=`sed -n -e 's/^!.*$/&/p' $j | sed 's/.*: \([0-9]*\) fail(s)./\1/'`
for i in $num
do
(( TOTAL = TOTAL + i )) 
done
print "Total number of failures in $j is $TOTAL"
done
/export/home/test/mons>xyz.sh    
Total number of failures in ./UnixForum/run.log is 8
Total number of failures in ./run.log is 16

Thanks for ur reply but iam getting error

I am getting error Total not found ..

Devel is directory .. inside that via1 and via2 is another directores which contains run.log ..

pls help

when i am doing
grep ! run.log |wc .. I am getting total number of failuers
but i have to go inside the directory and run this command ..

my directory structure is like this

/users/testsuite/application/

inside application datewise directories r creates
2006-01-02
2006-01-03
2006-01-04

i want to generate everyday report of failuers

inside 2006-01-02 there is devel ,version8 ,version 9 .. so on directories ..
inside each directory of devel , vesrion8 sub directory of via1 , linux, sun directories

and each directory contain run.log ..

i need output

2006-01-02/devel/via1/ failuers 10
2006-01-02/devel/via2/ faiuers 15
2006-01-02/version9/via1 failuers 13
.....

so on ....

for me number of failuers records .. total number of fails ..
wc of lines ...

i will run my file
/users/testsuite/appl/sh test.sh <date as input>

waiting for reply

hello
i am getting file but getting output failuer is zero

script i worte is as follwo
for i in *;do echo -n "$i "; find $i -name "run.log" -print |

grep ! |wc ;done |less

pls help

pls help me anyone is there

Try this :

for i in *
do
    echo -n "$i "
    find $i -name "run.log" -exec grep ! {} \; | wc -l
done | less

Jean-Pierre

Thanks to everybody for great help

thanks a lot