Your example doesn't match the description though,,, 'space or line feed to start a new row' isn't what you show. Your example shows it starting a new row on line feed only, and treating space as part of the field.
I'll use the output (ie line feed seperation only) as the goal here.
You can cheat and just use
sed to substitute commas for tabs but it won't make a very pretty layout.
Otherwise, printf would probably be the way to go here:
Code:
#!/bin/sh
printf "%10s %10s %10s\n" "field1" "field2" "field3"
while read line
do
printf "%10s %10s %10s\n" "`echo $line | cut -d ',' -f 1`" "`echo $line | cut -d ',' -f 2`" "`echo $line | cut -d ',' -f 3`"
done