Estoy trabajando con ficheros de grafos en formato graph6. Quiero leer un fichero y hacer determinadas operaciones con los grafos. El problema es que el formato graph6 admite como carácter válido la barra inclinada \ y bash lo interpreta como un carácter de escape. Entonces, no me vale el método clásico de lectura, que sería algo así:

while IFS='' read -r LINEA
do
    var=`echo "$LINEA"`
    echo "$var" > temp
    COSAS QUE HAGO CON EL FICHERO TEMP
    rm temp*
done < $FILE

Después de darle muchas vueltas, la solución que he encontrado es usar esa herramienta tan poco utilizada, excepto por los unixeros más frikis: awk.

La solución es la siguiente:

NUM=$(sed -n '$=' $FILE)
let NUM2=1

while [ $NUM2 -le $NUM ];
do
    awk 'NR=='$NUM2'' $FILE > temp
    COSAS QUE HAGO CON EL FICHERO TEMP
    rm temp*
    let NUM2=$NUM2+1
done

y aquí la dejo por si alguien tiene el mismo problema que yo. Y también para cuando vuelva a tener el mismo problema, dentro de unos años y no me acuerde de la solución.