reading text file line by line

Ok. before anyone mentions it, I did search for this but I'm not sure if I am looking for the right thing.
Now, onto my issue.
I have been keeping vmstats output in running text files.
So I have a file that looks like this:
vmstat 2 5
2005.09.19[00:04:09]

kthr memory page disk faults cpu
r b w swap free re mf pi po fr de sr s0 s1 s2 s3 in sy cs us sy id
0 0 0 26713952 3406744 104 360 180 2 1 0 0 0 1 0 1 3384 3338 2518 10 8 82
0 0 0 27029440 3694096 0 47 107 0 0 0 0 0 0 0 0 27724 18857 23609 20 12 6
8
0 0 0 27026376 3692096 257 1438 251 4 4 0 0 0 1 0 0 28839 24707 23954 24 18 5
8
0 0 0 27026304 3692424 0 0 24 0 0 0 0 0 1 0 0 26233 17749 23187 15 11 7
5
0 0 0 27025320 3691368 0 61 16 0 0 0 0 0 1 0 0 27644 18792 24070 18 14 6
8

For my own purposes, I echo in the command that I am issuing which was vmstat 2 5. then I put in a date stamp. Each time I run my capture stats process it appends to the text file for that day.
I need to now put these in an excel sheet for someone non-technical to use for another project.

I need to take each line of the text file and tag the date on the front or end.
I started with the following script but when I run it I get the error:
./fmtstats.ksh[12]: = 2005 : assignment requires lvalue

#!/bin/ksh
set -x
statfile=/export/home/myfiles/vmstats.2005.09.19
kyr=2005
kwrd=vmtstat
cat $statfile | while read a
do
fld1=`echo $a | awk -F: '{print $1}'`
echo " "
echo $fld1
sleep 1
if (($fld1 = $kyr )); then
echo "date found "
else
echo $fld1 $a >> new.output.file
fi
done

My plan is to identify $fld1 as the date, then look just concatenate it with the following lines until I hit the value of the date again.

I'm sure there is a gross mistake here someplace, but I can't find what lvalue is.

OH. I'm on sun solaris 9

lvalue means a place to put something while rvalue means something that has a value. The l means left and the r means right. And those are the two sides of an assignment statement.:
x=7
x is an lvalue, a place to put something. It ok if x does not have a value yet.
7 is a rvalue.

This is illegal:
((7=7))
The 7 of the left is not a place to put something so it not a (valid) lvalue. Type ((7=7)) at your shell prompt and you will get that error message.

You are doing this in your script with the if statement. Change = to == to fix it.

+ sleep 1
+ (( == 2005 ))
./fmtstats.ksh[12]: == 2005 : syntax error
$

AH. its possible that it doesn't like that the $fld1 is blank when its not on the date record?

You would be better off with this style:
if [[ $a = $b ]] ; then

Thank, that takes care of that piece!

HELP! I HAVE A PROBLEM. I HAVE a file like this:
date FINAL RESULT: 6
date FINAL RESULT: 4
date FINAL RESULT: 8
...

I want to read the file and make the average of the Final Results(6,4,8 etc). how can i do that?

awk '{ sum += $NF } END { if (NR) print sum/NR }' file

Edit: Didn't notice you were hijacking somebody else's thread. Please don't do that -- start a new thread instead.