我有一个文件,它的前28行只是单词。从第29行到第100行,我有A、B和C原子的位置信息,以及它们的三维坐标。现在我想做的是改变第29-100行的Z(第4列)与Y(第3列)的关系:
Z=Z+sin(Y/10*Pi)。就在终点站有可能吗?谢谢。
A 0.016333 0.003203 0.472723
A 0.016333 0.035228 0.472723
B 0.016333 0.067253 0.472723
B 0.016333 0.099278 0.472723
C 0.016333 0.131303 0.472723
C 0.016333 0.163328 0.472723
最佳答案
Perl解决方案:
perl -lane '$F[3] += sin($F[2]/10 * 4 * atan2 1, 1) if 29 .. 100;
print "@F"
' input_file > output_file
-n
逐行读取输入-a
将空白上的每一行拆分为@F数组-l
将新行添加到print
4 * atan2 1, 1
是π29。。100仅适用于给定范围内的行
关于linux - 根据其前面的列修改文本列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37514800/