2017-12-06 10 views
-1

別のファイルを変更した後でモデルを実行するシェルスクリプトがあります。例えば、無効にしていない場合は無効にして、再度有効にして選択してください

$cat myscript.sh 
cp myfile DELHI 
./mymodel.exe (This will execute with DELHI information) 
$cat DELHI 
! If you enable an input below, then the information 
! of the corresponding city will be passed to the model 
    x = 150 
    y = 150 
! input = 'KOLKATA' 
! input = 'MUMBAI' 
    input = 'DELHI' 
! input = 'CHENNAI' 
...... 
...... 
so on to 100 Cities 

すべての入力(コルカタ、ムンバイ、...)は、私は1つで私の興味1時、いくつかの都市を有効にして実行する必要が

だから、他の多くの情報が含まれている実際には異なるファイルですモデル。手作業では時間がかかります。だから、それをスクリプトに入れることができれば、それは何度も保存されます。

マイスクリプト/アルゴリズムは、私がチェックコマンドを与えるためにどのように無力だ

for city in KOLKATA MUMBAI DELHI CHENNAI;do 
    cp myfile $city 
    check all cities in '$city file' are disabled except one (that is to be executed) 
    ./mymodel.exe 
    done 

です。

+2

なぜすべての都市をファイルに保存する必要がありますか?そのほとんどはコメントアウトされていますか?何もコメントすることなく、都市のファイルを準備するだけで、必要な都市のための行が1つしかないのはなぜですか? – codeforester

+2

または都市を最初の引数として '。/ mymodel.exe'に直接渡します。 './mymodel.exe city_name'。 –

+0

私はあなたの意見を理解していますが、私はこのようにしなければなりません。同じ方法でもっと多くの情報が提供されているからです。私はここで例を挙げて尋ねていました。@codeforester ..都市にはコメントはありません。それらは無効になっています。私は1つずつ実行する必要があります。 – Kay

答えて

1

あなたが使用sed

  • すべての行のためには、いくつかのスペースで始まり、その後、 "入力"、すべての行について!
  • を挿入! input = 'YOURCITY'で始まり、!

を削除このように:

sed -i -e 's/^ *input/ ! input/' -e '/^ ! input = '"'$city'"'/s/ !/ /' "$city" 

cityごとにループでこれを呼び出すことができます。

関連する問題