2016-05-29 7 views
0

最初の28行が単なる単語であるファイルがあります。 29行目から100行目までは、A、B、Cの原子の位置情報とその3次元座標を持っています。今私がしたいのは、行29-100のY(第3列)に関する方法でZ(第4列)を変更することです。その前の列に基づいてテキスト列を変更します

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 

答えて

1

Perlの溶液:

perl -lane '$F[3] += sin($F[2]/10 * 4 * atan2 1, 1) if 29 .. 100; 
      print "@F" 
      ' input_file > output_file 
  • -n @Fアレイ
  • -lに線によって空白に
  • -a分割各行を入力行を読み出すprint
  • に改行を追加
  • 4 * atan2 1, 1 π
  • 29である.. 100のみ所定の範囲
+0

の行についても同様であるIは、F [1] F [2]でなければならないと思いますか? – James

+0

@ジェームス:もちろん、ありがとう。一定。 – choroba

関連する問題