【发布时间】:2018-07-09 16:44:03
【问题描述】:
我有以下代码
如果(温度==1){ 一些文字 } 还有一些文字 abcdef 如果(温度==1){ 一些文字 } 如果 (temp2==1) { 一些文字 }我需要使用任何脚本/命令来删除所有 if 语句。
需要的输出:
还有一些文字 abcdef 如果 (temp2==1) { 一些文字 }我已经可以实现的是以下
grep -zPo "if\ \(temp==1\) (\{([^{}]++)*\})" filename
我得到以下输出
如果(温度==1){ 一些文字 } 如果(温度==1){ 一些文字 }perl 命令的结果也一样
perl -l -0777 -ne
"print $& while /if \(temp==1\) (\{([^{}]++|(?1))*\})/g" filename
现在我需要从文件中删除匹配的行。
所以必须保留所有if(temp2==1),必须删除if(temp==1)。
我该怎么做?
【问题讨论】:
-
不适用于 perl 正则表达式 (Po)
-
您说您需要删除所有 if 语句,但您的预期输出包含一个 if 语句。请edit澄清您的问题。
-
条件不同。 if (temp2==1) 必须保留,if (temp==1) 必须删除
-
再一次:请编辑问题。我刚刚通读了所有内容,感到困惑,终于在评论中看到了。
-
将问题编辑得更清楚。希望有帮助