Adicione personagem em determinada posição na linha

Adicione personagem em determinada posição na linha

Encontrei o seguinte problema: preciso adicionar espaço em determinada posição em cada linha, para transformar os dados de

ATOM      1 HT1 GLY     5      10.346  30.927 130.252  0.00  0.00

para (adicionando espaço na 12ª coluna)

ATOM      1  HT1 GLY     5      10.346  30.927 130.252  0.00  0.00

Agora consegui alcançá-lo com:

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

Mas será que existe uma solução mais elegante, sem usar arquivos temporários?

Desde já, obrigado.

Responder1

Você certamente pode fazer isso, sedmas eu sei perlmelhor ...

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

Mais tarde

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

informação relacionada