Agregar carácter en cierta posición en la línea

Agregar carácter en cierta posición en la línea

Me encontré con el siguiente problema: necesito agregar espacio en cierta posición en cada línea, para transformar datos de

ATOM      1 HT1 GLY     5      10.346  30.927 130.252  0.00  0.00

a (agregando espacio en la columna 12)

ATOM      1  HT1 GLY     5      10.346  30.927 130.252  0.00  0.00

Ahora he logrado lograrlo con:

cat $INFILE | cut -c-11 > $INFILE.1
cat $INFILE | cut -c12- > $INFILE.2
paste -d ' ' $INFILE.1 $INFILE.2 > $INFILE

¿Pero puede haber una solución más elegante sin utilizar archivos temporales?

Gracias de antemano.

Respuesta1

Ciertamente puedes hacer esto, sedpero lo sé perlmejor...

  perl -p -i -e 's/^(.{12})/$1 /' $INFILE

Más tarde

  sed -i -e 's/^.\{12\}/& /' $INFILE

información relacionada