如何使用Sed和Regex从代码中删除多行注释

时间:2018-11-28 09:44:14

标签: regex awk sed

我正在尝试使用sed从文件中删除多行注释和单行注释。我的文件如下:

<#
Comment Block Data
Comment Block Data
#>
If (a= Example)
#
Comment Data
#
If (b= Example)

我想要以下结果。

If (a= Example)
If (b= Example)

我已经成功删除了#条注释,但无法从文件中删除<##>条注释。有没有办法使用正则表达式一起删除所有内容?

这是一个PowerShell脚本。

要删除'#'行,我使用了以下正则表达式:"/^[[:blank:]]*#/d;s/#.*//"

1 个答案:

答案 0 :(得分:0)

此sed oneliner适用于您提供的示例:

 sed '/^<#/,/^#>/d;/^#$/,/^#$/d' file

好吧,可能有很多打破上面这一行的可能性,例如未配对<# or #等。因此,在执行该行之后,您应该仔细检查您的源文件。

您可以添加-i(gnu sed)以将更改保存到文件中。

相关问题