Adiciona caractere em determinada posição na fila

2

Encontrei o seguinte problema: Preciso adicionar espaço em determinada posição em cada linha para transformar 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 pode haver uma solução mais elegante, sem usar arquivos temporários?

Obrigado antecipadamente.

    
por aland 08.05.2012 / 14:25

1 resposta

3

Você certamente pode fazer isso com sed , mas eu conheço perl better ...

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

Mais tarde

  sed -i -e 's/^.\{12\}/& /' $INFILE
    
por 08.05.2012 / 15:05

Tags