making the first character of word using uppercase using awk and sed

I want to make the first character of some words to be uppercase. I have a file like the one below.

uid,givenname,sn,cn,mail,telephonenumber
mattj,matt,johnson,matt johnson,mattj@gmail.com
markv,mark,vennet,matt s vennet,markv@gmail.com
mikea,mike,austi,mike austin,mike@gmail.com

I want to make the 2nd,3rd and 4th fields to start with upper case. Second entry has a middle initial which has to made an uppercase too. Entries from the second row should be modified till the end of the file for all the entries. What would be the easiest way to do this. expected result is.

uid,givenname,sn,cn,mail,telephonenumber
mattj,Matt,Johnson,Matt Johnson,mattj@gmail.com
markv,Mark,Vennet,Matt S Vennet,markv@gmail.com
mikea,Mike,Austi,Mike Austin,mike@gmail.com

Thanks
Matt

this might help you ..

Hi matt12,

Try:

$ cat infile
uid,givenname,sn,cn,mail,telephonenumber
mattj,matt,johnson,matt johnson,mattj@gmail.com
markv,mark,vennet,matt s vennet,markv@gmail.com
mikea,mike,austi,mike austin,mike@gmail.com
$ perl -F"," -lane 'BEGIN { $" = "," } if ($. == 1) { print; next } for ( @F[1..3] ) { s/\b(\w)/ucfirst $1/ge } print "@F"' infile
uid,givenname,sn,cn,mail,telephonenumber
mattj,Matt,Johnson,Matt Johnson,mattj@gmail.com
markv,Mark,Vennet,Matt S Vennet,markv@gmail.com
mikea,Mike,Austi,Mike Austin,mike@gmail.com

Regards,
Birei

That command actually did get me the expected results. Thank you so much Birei.