需求:从第m行到第n行修改文章的内容
例子:小分子的内容
1a30_ligand Created by X-TOOL on Fri Sep 26 17:34:14 2014 49 48 0 0 0 0 0 0 0 0999 V2000 4.8410 27.5760 5.3100 N 0 3 0 4 0 4 5.7330 26.3940 5.1650 C 0 0 0 2 0 4 7.1740 26.7720 5.5040 C 0 0 0 1 0 3 7.6240 27.8870 5.2180 O 0 0 0 1 0 1 5.6380 25.8180 3.7500 C 0 0 0 3 0 4 5.8270 26.8460 2.6520 C 0 0 0 3 0 4 5.6250 26.2750 1.2620 C 0 5 0 1 0 3 4.6630 25.4970 1.0650 O 0 0 0 1 0 1 25 48 1 0 0 2 25 49 1 0 0 2 M END > <MOLECULAR_FORMULA> C15H23N3O8 > <MOLECULAR_WEIGHT> 373.2 > <NUM_HB_ATOMS> 11 > <NUM_ROTOR> 9 > <XLOGP2> -2.04 $$$$
想改变这个sdf分子坐标部分,想把第三列(即z轴)改成0
代码实现部分
本文件的第5行-第12行将被更改,第三列将被更改为0.0000’
awk 'NR==5,NR==12 {$3="0.0000"}{print}' 1a30_ligand.sdf > test.sdf
结果展示
1a30_ligand Created by X-TOOL on Fri Sep 26 17:34:14 2014 49 48 0 0 0 0 0 0 0 0999 V2000 4.8410 27.5760 0.0000 N 0 3 0 4 0 4 5.7330 26.3940 0.0000 C 0 0 0 2 0 4 7.1740 26.7720 0.0000 C 0 0 0 1 0 3 7.6240 27.8870 0.0000 O 0 0 0 1 0 1 5.6380 25.8180 0.0000 C 0 0 0 3 0 4 5.8270 26.8460 0.0000 C 0 0 0 3 0 4 5.6250 26.2750 0.0000 C 0 5 0 1 0 3 4.6630 25.4970 0.0000 O 0 0 0 1 0 1 25 48 1 0 0 2 25 49 1 0 0 2 M END > <MOLECULAR_FORMULA> C15H23N3O8 > <MOLECULAR_WEIGHT> 373.2 > <NUM_HB_ATOMS> 11 > <NUM_ROTOR> 9 > <XLOGP2> -2.04 $$$$
注意
为了避免损坏原始数据,可以创建新文件 写入文件可以提前测试几次 要用
>
而不是>>