检索标题/注释块

检索标题/注释块

我有许多如下所示的日志文件:

/*
header
arbitrary number of lines
*/
blah blah
blah blah

使用简单的 Bash 命令(最好是 sed,而不是 awk),我如何仅检索标题行(最好包括注释标记)?

我读了手册,也尝试用谷歌搜索,也发现一些提示,但还不足以让我开始。

谢谢!

答案1

如果您确认以下事项,此答案中的脚本将适合您。

  1. /*文件以“ ”字符 开头
    • 可能存在未嵌套的多行 C-Syntex 注释块
    • 注释块以同一行上没有其他 C 语句结束
sed -n '/^\/\*/,/\*\// p' 文件.c
#- - - - -

这将匹配从文件开头到注释块结尾的所有行。
第二行(#开头带有“ ”)突出显示正在搜索的匹配项。开头的
“ ”和结尾的“ ”告诉 sed 仅打印匹配的部分。-np

答案2

这将查看每个扩展名为 .log 的文件,如果第一行仅为“/*”,则打印所有内容,直到仅包含“*/”的行。

for file in *.log; do
      head -n1 $file | grep  -q '^/*' &&
      sed '/^\*\/$/q' $file; 
done

答案3

cat *.log | sed -e 's/*\/\*//g' -e 's/\*\///g' >> smt.log

或许就是这样

答案4

如果您像我一样在尝试检索 Doxygen 样式注释时偶然发现了这个问题,sed 命令是:

sed -n '/^\/\*/p; /^ \*/p' < file

为了更详细的解释,我已发表于博客关于它。

相关内容