创建脚本来替换大文件中占位符中的小文件内容

时间:2019-06-11 06:56:17

标签: bash shell scripting

我正在尝试创建一个脚本,该脚本会将文本文件中的多行文本插入到我的index.html中。

这就是我的想法。创建一个名为testEnvConfig.json.的文件。内容将包含我的测试Firebase服务器的设置。

var config = {
    apiKey: "AIzaSyALdWxUxt63AwOrj-waTNvZo7_zt8CuMgs",
    databaseURL: "https://bggoplantestdev.firebaseio.com",
    projectId: "bggoplantestdev",
    storageBucket: "bggoplantestdev.appspot.com",
    messagingSenderId: "499035393973"
};

我还有一个名为index.html的超大型html文件,其中包含1000多行代码。但是,$config

中有一个变量

我只是想运行一个脚本./configureEnv <env>,该脚本将测试文件作为参数并将$ config变量替换为测试文件的内容。

所以最终结果是这样:

*之前* (在index.html中)

try {
  var $config
  var fbapp = firebase.initializeApp(config);

之后(在index.html中)

try {
  var config = {
    apiKey: "AIzaSyALdWxUxt63AwOrj-waTNvZo7_zt8CuMgs",
    databaseURL: "https://bggoplantestdev.firebaseio.com",
    projectId: "bggoplantestdev",
    storageBucket: "bggoplantestdev.appspot.com",
    messagingSenderId: "499035393973"
  };
  var fbapp = firebase.initializeApp(config);

有关如何执行此操作的任何建议?

1 个答案:

答案 0 :(得分:1)

将文件的内容读取到变量中。然后使用here-doc作为模板,并在所需的位置替换变量。

OVS

脚本的参数是包含配置的文件的名称。

实际上,我建议您从配置文件中取出from sympy import solveset from sympy import Symbol e = Symbol('e') hA = Symbol('hA') hB = Symbol('hB') ed = Symbol('ed') equations = [((1-ed)*(1-e))/hA>0, ((1-ed)*(1-e))/hA<.03, (ed*e+(1-ed)-e)/hB>.03/.97, e>0, e>1, hA>0, hB>0, hB<1, ed>0, ed<1] variables = [e,hA,hB,ed] solveset(equations,variables) ,然后放入结构。变量的名称应仅在模板中。然后脚本将如下所示:

Traceback (most recent call last):
  File "main.py", line 14, in <module>
    solveset(inequalities,variables)
  File "/home/runner/.local/lib/python3.6/site-packages/sympy/solvers/solveset.py", line 1658, in solveset
    raise ValueError("%s is not a valid SymPy expression" % f)
ValueError: [(1 - e)*(1 - ed)/hA > 0, (1 - e)*(1 - ed)/hA < 0.03, 
(e*ed - e - ed + 1)/hB > 0.0309278350515464, e > 0, 
e > 1, hA > 0, hB > 0, hB < 1, ed > 0, ed < 1] is not a valid SymPy expression