![在行中的特定位置添加字符](https://linux22.com/image/1314058/%E5%9C%A8%E8%A1%8C%E4%B8%AD%E7%9A%84%E7%89%B9%E5%AE%9A%E4%BD%8D%E7%BD%AE%E6%B7%BB%E5%8A%A0%E5%AD%97%E7%AC%A6.png)
我遇到了以下问题:我需要在每行的某个位置添加空格,以便将数据从
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