如何删除@author的多行注释

时间:2017-11-07 14:09:16

标签: bash awk sed

我需要从所有java文件中删除@author的多行注释。 这些注释由IDE添加,格式如下:

/**
 *
 * @author AuthorName
 */

我使用sed并使用此命令删除了模式和下一行:

find . -name *.java | xargs sed -i '/@author AuthorName/,+1d'

但不确定如何删除前两行和下一行的模式。

1 个答案:

答案 0 :(得分:3)

使用gnu sed,您可以使用-z选项来处理由NUL字符分隔的输入并使用:

find . -name '*.java' -exec sed -i -zE \
's~/\*\*[*[:space:]]+\* @author [^\n]*[*[:space:]]+*/\n*~~g' {} +

正则表达式模式\*\*[*[:space:]]+\* @author [^\n]*[*[:space:]]+*/\n*将匹配评论文本中包含* @author的评论块。