動作環境
Xeon E5-2620 v4 (8コア) x 2
32GB RAM
CentOS 6.8 (64bit)
openmpi-1.8.x86_64 とその-devel
mpich.x86_64 3.1-5.el6とその-devel
gcc version 4.9.2 (とgfortran) : sclで設定
NCAR Command Language Version 6.3.0
WRF v3.9を使用。
Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37)
Python 3.6.0 on virtualenv
やりたいこと
- ファイルの特定行だけ変更する
- ファイルの特定行を元に戻す
- 異なるパラメータ値を持つ、多くのファイルに対して同じ処理を行う
ファイル例
data1a.txt
314
A,B,C,D,E ! This is comment
data1b.txt
314
F,G,H,I,J ! This is comment
data2.txt
271
A,B,C,D,E ! This is comment
data3.txt
6022
A,B,C,D,E ! This is comment
data2.txtとdata3.txtに対して以下のようにしたい
- 2行目を
F,G,H,I,J ! This is comment
にする - 2行目を
A,B,C,D,E ! This is comment
に戻す
sedで書くと大変になりそうなので、diffとpatchを使うことにした。
参考: http://qiita.com/bunzaemon/items/e97bbd660f7319c372bd
情報感謝です。
実施例
準備
$diff data1a.txt data1b.txt > diff_1a1b
$diff data1b.txt data1a.txt > diff_1b1a
実施
$patch data2.txt diff_1a1b
とある処理
$patch data2.txt diff_1b1a
とある処理
$patch data3.txt diff_1a1b
とある処理
$patch data3.txt diff_1b1a
とある処理
書式が決まった設定ファイルのパラメータ値を変更するため、設定ファイルを出力するbash scriptやPython scriptを用意する場合、書式ずれに注意が必要になる。
安易な方法としてこちらの方法を検討した。