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