在Awk结束Parantheses

时间:2015-06-29 15:35:48

标签: math awk sed increment

我有以下代码行,我希望下面的三行增加4。

while(i <= 3)

我有以下内容,但它给出了关于右括号的错误:

awk '/ while(i <= /  {sub($3+0,$3+4,$3)} )  1' file >file.tmp && mv file.tmp file

有关如何修复错误并将其增加4的任何想法/想法?

感谢您的任何意见。

1 个答案:

答案 0 :(得分:3)

这将是+4值:

$ awk '/while\(i <= /  {sub($3+0,$3+4,$3)}  1' file
while(i <= 7)

请注意,您将" while..."与前导空格匹配,并且在)之后的某个地方也有{sub()}。删除它们并转义(解决了问题。图形:

awk '/ while(i <= /  {sub($3+0,$3+4,$3)} )  1' file
      ^     ^                            ^
   extra?   escape!                      removed!

一般来说,尝试从简单到复杂。你的基本结构是:

awk '/pattern/ {sub($3+0,$3+4,$3)} 1' file