使用awk向文档添加额外的行

时间:2016-04-28 11:24:23

标签: bash shell jsp awk sed

我有一个jsp页面和一个功能。

function foo() {
if(confirm("bar") {
    // do something
}

我想编辑exsiting或使用shell脚本向jsp页面添加一个新的if条件,使其如下所示

function foo() {
if(confirm("new text"+bar) {
   //do something 
}

我正在尝试将这样的awk用于一个新的if条件,当一个不存在时。

awk '/foo/{print;print "if(confirm(Hey) {";next}1' myjsp.jsp
awk '/foo2/{print "}";}1' myjsp.jsp  //foo2 is fucntion after foo. using this add closing }

问题是我看到重复的行打印我猜是因为选项1打印出当前行后的所有内容。我怎么阻止这个。

1 个答案:

答案 0 :(得分:0)

尝试这个简单的方法

sed -r '/foo()/{n;/if\(confirm/s/([^"]+)"(.*)".*/\1"new text"+\2)\{/}' fileName

<强>输出:

function foo() {
if(confirm("new text"+bar){
    // do something
}