LoginSignup
0
2

More than 5 years have passed since last update.

command > ファイルの特定行を変更し、処理後に元に戻す > sedは断念 | diffとpatchの使用

Last updated at Posted at 2017-06-13
動作環境
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を用意する場合、書式ずれに注意が必要になる。

安易な方法としてこちらの方法を検討した。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2