使用bash替换两种模式之间的javascript代码

时间:2017-10-26 10:23:31

标签: bash sed

我有以下代码:

    this.directives.forEach(function (dir) {
        var myVar = "hello";
        if (control.text !== myVar) {
            cleanUp(control);
            if (dir)
                setUpControl(myVar, dir);
            control = dir;
        }
    });

需要替换if (control !== myVar) {}之间的所有内容。我跟着this answer并尝试了以下内容:

sed -i 's/(if \(control\.text !== myVar\) \{).*?(\})/\1 REPLACEMENT_STRING \2/is' myFile.js

返回

sed: 1: "s/(if \(control\.text ! ...": RE error: invalid repetition count(s)

1 个答案:

答案 0 :(得分:1)

你可以尝试这个但是如果有些人不能真正有效率的话。{'出现在你的函数中......

sed '/if (control\.text !== myVar) {/!b;p;s/.*/REPLACEMENT_STRING/p;:A;N;/}/!{s/.*//;bA};D' myFile.js