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'數據類型,我該如何繼續:) –