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

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

我遇到了以下問題:我需要在每行的特定位置添加空格,以轉換數據

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

相關內容