我正在尝试查找跨越/usr/include/stdio.h中多行的块注释的数量
我设法使用2个grep命令:
egrep '/\*' /usr/include/stdio.h | egrep -cv '\*/'
这可以用更优雅的方式完成,只使用一个正则表达式吗?
答案 0 :(得分:2)
最简单的方法是使用负面预测,如果您的grep
版本支持PCRE(例如GNU grep)。
grep -P '/\*(?!.*\*/)' filename
一般情况下,只要扩展RE,就会出现负面的预测。以下内容非常接近,但如果单行注释以**/
结尾,则无效。
grep -E '/\*[^*]*((\*($|[^/]))?[^*]*)*$'