2012-03-08 17 views

回答

1

它看起來像你試圖globgrep使用regular expressions

使用GNU Grep

grep -n '\<if\s*(' file.txt 

這看起來對if在)一個字的開頭,後跟可選(*)空白(\s和左括號(()。


如果你只希望看到的等價測試,你可以這樣做:

grep -n '\<if\s*(.*==' file.txt 

...這增加了檢查零一對多(*)(通配符)字符(.(==但這不會趕上多測試象之間:

if (status != OFF && 
    volume == 11) 
{ 
    // [...] 
} 

如果你只是想測試分配

grep -n '\<if\s*(.*[^!<>=+*/^-]=[^=]' test.txt 

...這會檢查=之前的字符不是(^)和!<>=+*/^-[]),而性格隨即不一個=

這不是完美的,但我相信你可以自己調整正則表達式來滿足你的需求。

+0

感謝John的迴應。但它顯示所有類型的「if語句」。它不應該顯示「if(x santosh 2012-03-08 19:33:57

+0

@santosh:我已經更新了我的答案。 – Johnsyweb 2012-03-08 19:40:20

+0

謝謝約翰。有用。接下來的問題是:如何僅顯示「if(x = y)」?只有一個「=」。它甚至不應該顯示「==」類型的if語句。我想檢查我的文件中有多少這樣的單個「=」'if'語句。 – santosh 2012-03-08 19:46:45