我需要从所有java文件中删除@author的多行注释。 这些注释由IDE添加,格式如下:
/** * * @author AuthorName */
我使用sed并使用此命令删除了模式和下一行:
find . -name *.java | xargs sed -i '/@author AuthorName/,+1d'
但不确定如何删除前两行和下一行的模式。
答案 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
的评论块。