Convertir notación científica a decimal en csv [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Convertir notación científica a decimal en múltiples campos 2 respuestas

Tengo un gran archivo csv con 150 columnas, una muestra de las cuales se muestra a continuación:

id,c1,c2,c3,c4,c5...
1,0,acc,123.4E+03,0,bdd,...
2,1.299E-05,bef,1.666E-08,23,ghh....

Como puede ver, algunos campos tienen valores en anotaciones científicas (no se conoce qué columnas tienen valores en anotaciones científicas dado que el archivo csv tiene más de 5 mil millones de filas).

Necesito convertir los valores en anotaciones científicas a su forma decimal correspondiente. Encontré la siguiente solución:Convertir notación científica a decimal en múltiples campos y obtuve el siguiente código:

#!/usr/bin/awk -f
BEGIN {
d = "[[:digit:]]"
OFS = FS = ","
}
{
delim = ""
for (i = 1; i <= NF; i++) {
    if ($i ~ d "E+" d d d "$") {
        printf "%s%.41f", delim, $i
    }
    else {
        printf "%s%s", delim, $i
    }
    delim = OFS
}
printf "\n"
}

Pero el script anterior no funciona para mí. El script anterior devuelve mi archivo de entrada tal como está (para valores E + y para valores E) sin conversión. Soy bastante nuevo en los scripts de shell, ¿alguna idea?

Estoy ejecutando el script de esta forma:

chmod u+x awkscript.awk
./awkscript.awk inputfile.csv

Respuestas a la pregunta(1)

Su respuesta a la pregunta