在行中的特定位置添加字符

在行中的特定位置添加字符

我遇到了以下问题:我需要在每行的某个位置添加空格,以便将数据从

ATOM      1 HT1 GLY     5      10.346  30.927 130.252  0.00  0.00

至(在第 12 列添加空格)

ATOM      1  HT1 GLY     5      10.346  30.927 130.252  0.00  0.00

现在我已经成功实现了它:

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

但也许有更优雅的解决方案,而不使用临时文件?

提前致谢。

答案1

你当然可以这样做,sed但我知道perl更好的办法是......

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

之后

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

相关内容