
我遇到了以下問題:我需要在每行的特定位置添加空格,以轉換數據
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