Code:
$ cat datefile.csv
column1,column2,column3,column4,column5,column6, column7, Column8, Column9, Column10
"12","B000QRIGJ4","4432","string with quotes, and with a comma, and colon: in between","4432","author1, name","890","88","11-OCT-11","12"
"4432","B000QRIGJ4","890","another, string with quotes, and with more than, two commas: in between","455","author2, name","12","455","12-OCT-11","55"
"11","B000QRIGJ4","77","string with, commas and (paranthesis) and : colans, in between","12","author3, name","333","22","13-OCT-11","232"
$ awk -f csv2.awk datefile.csv
column1,column2,column3,column4,column5,column6, column7, Column8,"00/00/2000", Column10
"12","B000QRIGJ4","4432","string with quotes, and with a comma, and colon: in between","4432","author1, name","890","88","10/11/2011","12"
"4432","B000QRIGJ4","890","another, string with quotes, and with more than, two commas: in between","455","author2, name","12","455","10/12/2011","55"
"11","B000QRIGJ4","77","string with, commas and (paranthesis) and : colans, in between","12","author3, name","333","22","10/13/2011","232"
$ cat csv2.awk
BEGIN {
if (NUMCOLS == "") NUMCOLS=32
if (DELIM == "") DELIM = "\t"
if (REPL == "") REPL = "~"
split("JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC", month, " ")
for (i=1; i<=12; i++) mdigit[month[i]]=i
}
{
gsub(DELIM, REPL)
$0 = gensub(/([^,])\"\"/, "\\1'", "g")
out = ""
n = length($0)
for (i = 1; i <= n; i++) {
if ((ch = substr($0, i, 1)) == "\"") {
inString = (inString) ? 0 : 1
}
out = out ((ch == "," && ! inString) ? DELIM : ch)
}
nfields=split(out,outfields,DELIM);
# Do stuff with date
m=substr(outfields[9],5,3)
outfields[9] = sprintf("\"%02d/%02d/"20"%02d\"",mdigit[m],substr(outfields[9],2,2),substr(outfields[9],9,20))
for (i=1;(i<=nfields)&&(i<=NUMCOLS);i++) {
if (i > 1) {
printf (",");
}
printf ("%s", outfields[i]);
}
printf ("\n");
}