【问题标题】:Deleting c-style block comments from multiple files从多个文件中删除 c 样式的块注释
【发布时间】:2019-12-04 08:01:51
【问题描述】:

我有需要删除的头文件的文件。

/***....*
.
.
.
***.....*/

就是这样的块。

我已使用 sed 命令删除此块。

sed -i '0,/^\/*\*/d' filename

它只删除块注释的第一行(例如)/***....*

我希望它可以删除整个块。

我尝试过使用:

sed -i '/^.*\/\/*/d' filename,但这会删除所有出现的/*...*/

【问题讨论】:

标签: linux sed scripting


【解决方案1】:

这个awk 将删除块:

cat file
Beginning
/***....*
.
.
.
***.....*/
End of block
Some data

awk '/^\/\*\*/ {f=1} !f; /^\*\*/ {f=0}' file
Beginning
End of block
Some data

/^\/\*\*/ {f=1} 如果行以/** 开头,则将标志f 设置为1
!f; 如果未设置标志,则打印行
/^\*\*/ {f=0} 如果行以** 开头,则清除标记f

【讨论】:

  • 谢谢,我试试这个。
猜你喜欢
  • 2011-12-25
  • 1970-01-01
  • 1970-01-01
  • 2013-11-18
  • 1970-01-01
  • 1970-01-01
  • 2010-10-27
  • 1970-01-01
  • 2015-05-11
相关资源
最近更新 更多