簡體   English   中英

正則表達式,用於獲取C類型定義

[英]Regex for greping C type definition

我有大量的源文件,我想通過它查找特定的用戶定義類型dev_if_type_t的定義。 到目前為止,我所知道的只是我正在檢查的代碼中的某些函數將其用作返回值。

現在,我正在使用以下內容:

typedef.*dev_if_type_t|(define|typedef|enum|struct)\s*dev_if_type_t

但它不會返回任何結果。 我有沒有提到C類型定義的另一種方法?

grep行本身,位於代碼庫的頂層目錄中:

grep -rn "typedef.*dev_if_type_t\|\(define\|typedef\|enum\|struct\)\s*dev_if_type_t" *

該定義可能有更多變體,例如:

typedef struct {
    /* some code */
} dev_if_type_t;

一些代碼也可能像這樣:

#define \
dev_if_type_t int

struct
dev_if_type_t
{
    /* some code */
};

你永遠不會知道。
我建議您嘗試使用dev_if_type_t並使用grep的上下文選項-C <num> dev_if_type_t查找定義。

使用包括|在內的表達式時 不要忘記使用egrep (不建議使用)或正確的命令grep -E ...

注意\\| \\(具有不同的含義。使用|(用於您的目的。

因此正確的模式應該是:

grep -Ern "typedef.*dev_if_type_t|(define|typedef|enum|struct)\s*dev_if_type_t" *

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM