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.
Deja una respuesta