[英]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.