knarum-
This may do what is required.
I used a slash and dash which are the normal
separators for dates and a colon for a field
separator.
You will have to substitute whatever delimiters
and such that you have in your data for what I
have used.
Yes, the if statement is real ugly, but it works!
#! /bin/sh
awk 'BEGIN{FS = OFS = ":"}
{
split ($3,slash,"/"

split ($3,dash,"-"
if (((slash[3] > 0)&&(slash[3] < 32))||((dash[3] > 0)&&(dash[3] < 32))) print
else { $3 = "2000/01/01" ; print }
}' dates > out
more out
# end of shell file
file "dates" shown below:
1:2:99/06/01:4:5
2:2:98-03-19:4:5
3:2:3-19-98:4:5
4:2:95/06/03:4:5
5:2:95/6/3:4:5
6:2:3/6/95:4:5
file "out" shown below:
1:2:99/06/01:4:5
2:2:98-03-19:4:5
3:2:2000/01/01:4:5
4:2:95/06/03:4:5
5:2:95/6/3:4:5
6:2:2000/01/01:4:5
Hope this helps.
flogrr
flogr@yahoo.com