如果未禁用,则将其停用,然后再次启用选择

时间:2017-12-06 03:09:23

标签: linux bash shell

我有一个shell脚本,在修改另一个文件后运行我的模型。如,

$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

所有输入(KOLKATA,MUMBAI,...)实际上是包含许多其他信息的不同文件

因此,我需要逐一启用我感兴趣的几个城市并执行模型。手动它需要很多时间。因此,如果可以将其放入脚本中,那么它可以节省很多次。

我的脚本/算法是

  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

我很无奈如何给出检查命令。

1 个答案:

答案 0 :(得分:1)

您使用sed

  • 对于所有行以一些空格开头然后“输入”,插入!
  • 对于以! input = 'YOURCITY'开头的所有行,请移除!

像这样:

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

您可以在每个city的循环中调用它。