-function sep_line {
- sed 's/^\([^"]*\("[^"]*"[^"]*\)*"[^"]*\),/\1#COMMAHACK#/g' |
- sed 's/,/\n/g' | sed "s/\"\"/\"/g; s/^['\"]\|['\"]$//g"
+#function sep_line {
+# sed 's/^\([^"]*\("[^"]*"[^"]*\)*"[^"]*\),/\1#COMMAHACK#/g' |
+# sed 's/,/\n/g' | sed "s/\"\"/\"/g; s/^['\"]\|['\"]$//g"
+#}
+
+function csv_split() { ## USAGE: csv_split CSV_RECORD
+ local record=${1%"${CR}"}
+ local right
+ local vnum=0
+ unset values
+ while [ -n "$record" ]
+ do
+
+ case $record in
+ \"*) right=${record#*\",}
+ value=${record%%\",*}
+ values[$vnum]=${value#\"}
+ ;;
+ *) values[$vnum]=${record%%,*}
+ right=${record#*,}
+ ;;
+ esac
+
+ case $record in
+ *,*) record=${right} ;;
+ *) record=${record#\"}
+ values[$vnum]=${record%\"}
+ break;;
+ esac
+
+ echo ${values[$vnum]}
+
+ vnum=$(( $vnum + 1 ))
+
+ done