An einer bestimmten Position in der Zeile ein Zeichen hinzufügen

An einer bestimmten Position in der Zeile ein Zeichen hinzufügen

Ich bin auf folgendes Problem gestoßen: Ich muss an einer bestimmten Stelle in jeder Zeile ein Leerzeichen einfügen, um die Daten von

ATOM      1 HT1 GLY     5      10.346  30.927 130.252  0.00  0.00

zu (durch Einfügen eines Leerzeichens in der 12. Spalte)

ATOM      1  HT1 GLY     5      10.346  30.927 130.252  0.00  0.00

Jetzt ist es mir gelungen, dies zu erreichen mit:

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

Aber gibt es vielleicht eine elegantere Lösung ohne die Verwendung temporärer Dateien?

Dank im Voraus.

Antwort1

Das kannst du sicherlich machen, sedaber ich weiß perles besser ...

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

Später

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

verwandte Informationen