使用“grep”显示文件中的所有“if语句”

时间:2012-03-08 19:24:56

标签: grep

我有一个文件“file.txt”,其中包含许多if - 语句,如下所示:

if ( x == y)

if (x == (y + 1))

and so on.

如何使用if在屏幕上显示文件中显示的所有grep语句。

我尝试过:grep -R "if ( * == * )" *但它没有显示所需的结果。

1 个答案:

答案 0 :(得分: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

...这会检查=之前的字符不是(^)和!<>=+*/^-[]),而后面的字符不是=

这不是完美的,但我相信你可以自己调整正则表达式来满足你的需求。