0
我有一個包含一些if
-statements文件「file.txt的」,如下圖所示:顯示所有的「if語句」在一個文件中使用的「grep」
if (x == y)
if (x == (y + 1))
and so on.
如何顯示所有if
- 使用grep
顯示在屏幕上的文件中。
我試過了:grep -R "if (* == *)" *
但它沒有顯示出所需的結果。
我有一個包含一些if
-statements文件「file.txt的」,如下圖所示:顯示所有的「if語句」在一個文件中使用的「grep」
if (x == y)
if (x == (y + 1))
and so on.
如何顯示所有if
- 使用grep
顯示在屏幕上的文件中。
我試過了:grep -R "if (* == *)" *
但它沒有顯示出所需的結果。
它看起來像你試圖glob。 grep
使用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
...這會檢查=
之前的字符不是(^
)和!<>=+*/^-
([]
),而性格隨即不一個=
。
這不是完美的,但我相信你可以自己調整正則表達式來滿足你的需求。
感謝John的迴應。但它顯示所有類型的「if語句」。它不應該顯示「if(x
santosh
2012-03-08 19:33:57
@santosh:我已經更新了我的答案。 – Johnsyweb 2012-03-08 19:40:20
謝謝約翰。有用。接下來的問題是:如何僅顯示「if(x = y)」?只有一個「=」。它甚至不應該顯示「==」類型的if語句。我想檢查我的文件中有多少這樣的單個「=」'if'語句。 – santosh 2012-03-08 19:46:45