お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2011-01-25 06:34:47

lrt57900
新しいメンバ
登録日: 2010-08-29

質問: 端末を通してテキストを変えられますか?

こんにちは。
可能かどうか分からないのですが、色々ネットで探しても分からなかったのでここで質問させてください。

今、ある数値計算をFortranでしています。端末でスタートすると最初に "xxxx.ini" というイニシャライズのファイルを読み込んだ後にプログラムが走るのですが、そのファイルを開いて、ある行のパラメーターを変更して更にそれを保存した後にプログラムを走らせると言うことをシェルスクリプトに書いて実行したいのです。そうすれば、色々なパラメーターの計算を自動で計算出きるのです。

以上のようなことは可能デスか?
もし、可能ならシェルのコマンド名など教えていただけませんか?
お願いします。

オフライン

 

#2 2011-01-25 09:47:05

hmatsue
アドバイザ
登録日: 2009-03-10

Re: 質問: 端末を通してテキストを変えられますか?

比較的素直な方法としてはシェルスクリプトの中でsedやawkやperlやpythonのスクリプトを呼び出して書き換えるとか、
あまり素直で無い方法としてはシェルスクリプトの中でgrepやcatやechoを呼び出して書き換えるとか、
perlやpythonで設定ファイルを書き換えつつ、メインのプログラムを呼び出す(シェルスクリプトを使わない)方法などが考えられるかと思います。
変更の内容にもよりますが、お勧めはperlやpythonあたりです。

個人的な意見としては設定ファイルの内容は残しておいた方が都合がよいような気もする(プログラム実行時に実行条件を残すのであれば、それで代用できるかもですが)のですが、メインのプログラムを改変して、複数の設定ファイルを読み込み、順次実行するようにするというのもありかとは思います。

オフライン

 

#3 2011-01-25 19:28:45

STGSAGWAN
ゲスト

Re: 質問: 端末を通してテキストを変えられますか?

lrt57900 による投稿:

もし、可能ならシェルのコマンド名など教えていただけませんか?

「イニシャライズのファイル」のデータ形式にも寄りますが、私ならsedコマンドでサクッとやります。
ファイルを少し書き換える程度の処理に、私はスクリプト言語は使わないです。

 

#4 2011-01-26 01:45:19

lrt57900
新しいメンバ
登録日: 2010-08-29

Re: 質問: 端末を通してテキストを変えられますか?

こんにちは。投稿者です。
アドバイス頂いた、sedで問題解決しました。
自動で走らせる用のスクリプトにファイル並びにそのダイレクトリごとリネームしてコピー。
そして、そのダイレクトリの中のイニシャルファイルをsedで変更して、プログラムを走らせることができました。
おかげで、一つのスクリプト内で一連の作業が出来ました。
今まで、いちいちファイルを開いて、パラメータを変更保存、プログラム実行としてたので手間でしょうがなかったです。
ありがとうございました。

オフライン

 

Board footer

Powered by FluxBB