C文件的变量例如比方说,我有这样的代码发现用grep
#include <stdio.h>
int main(void)
{
int x = 99;
int *p1, *p2;
char y[10] = "a"
// some code
// some code
return 0;
}
所以在这段代码中,有两个变量主要int
类型和char
的。现在,假设我编制了至少400-500行的代码,其中我已经初始化了20-30个变量。现在,我想创建一个bash脚本来查找代码中的变量。我用这种方式cat code.c | grep int
开始,这将打印int main void()
功能在上面给定的情景,并打印int x =99
和//some code
声明,但我希望只打印这些行int x=99;
和int *p1, *p2
不每线。
所以现在,在这里上面的问题,我有一个变量数据类型char
过,现在我该怎样构建我的bash脚本的方式,cat
后,我用grep只有特定的数据类型一样int
char
double
float
,有任何OR
它的方法?还是有没有比猫和Grep更容易执行相同的方法?
所以我的最终输出应int x=99;
int *p1, *p2
,char y[10] = "a"
:)
将是前瞻性的反应。
这对于单个正则表达式来说确实很难做到。我的意思是***真的很难。编写一个识别泛型C变量声明的程序实际上可能会更容易,例如使用'lex'和'yacc'。 –
'bash','grep','sed','awk'等都不是正确的工具。一种编程语言(有一些奇特的例外)具有复杂的词法和语法结构,如Joachim所提到的,完整的描述经常需要数十页专用语言,如'lex'和'yacc'。试图用正则表达式做同样的事情只是一个坏主意。 –
这就是我最初想到的@JoachimPileborg。 :(但是,可以通过在grep中使用它作为OR方法来grep'int'' char'和其他一些选择数据类型吗?例如我做了'cat file.c | grep int'给出了包含行的输出'int'但如果我想要打印'char'数据类型,我该如何继续:) –