Aritmética de punto flotante en el script de shell de UNIX

Cómo hacer aritmética con números de punto flotante como1.503923 en un script de shell? Los números de punto flotante se extraen de un archivo como una cadena. El formato del archivo es el siguiente:

1.5493482,3.49384,33.284732,23.043852,2.2384...
3.384,3.282342,23.043852,2.23284,8.39283...
.
.
.

Aquí hay un código de ejemplo simplificado que necesito para trabajar. Todo funciona bien hasta la aritmética. Extraigo una línea del archivo y luego extraigo varios valores de esa línea. Creo que esto reduciría el tiempo de procesamiento de búsqueda ya que estos archivos son enormes.

# set vars, loops etc.

while [ $line_no -gt 0 ]
do
    line_string=`sed -n $line_no'p' $file_path`  # Pull Line (str) from a file
    string1=${line_string:9:6}                   # Pull value from the Line
    string2=${line_string:16:6}
    string3=...
    .
    .
    .
    calc1= `expr $string2 - $string7` |bc -l     # I tried these and various
    calc2= ` "$string3" * "$string2" ` |bc -l    # other combinations
    calc3= `expr $string2 - $string1`
    calc4= "$string2 + $string8" |bc
    .
    .
    .
    generic_function_call                        # Use the variables in functions
    line_no=`expr $line_no - 1`                  # Counter--
done

Salida que sigo recibiendo:

expr: non-numeric argument
command not found

Respuestas a la pregunta(4)

Su respuesta a la pregunta