捕获 C 预处理文件中大括号之间的文本

捕获 C 预处理文件中大括号之间的文本

我正在使用预处理的 C 源文件。我想提取一个函数进行额外处理。我可以通过以下方式找到特定函数的开始:

gcc -DNDEBUG -march=native -E source.c > source.pre

BEGIN=$(grep -n 'static inline int some_function' source.pre | cut -f 1 -d ':')

执行上述代码后,我得到了函数开始的行号。在本例中,其为 7812。

{我在设计一种方法来捕获 C 函数的花括号 (和)之间的文本时遇到困难}。基于提取文本文件行的中间部分,我认为这简化为找到紧邻右大括号 ( ) 的问题}

如何找到紧邻右大括号?或者如何捕获 C 预处理文件中大括号之间的文本?

答案1

}假设源代码中没有任何奇怪的东西可能会在一行中单独放置一个杂散,请尝试sed.

sed -n '/^static inline int some_function(/,/^}$/p' source.pre

相关内容