我有一个文件“file.txt”,其中包含许多if
- 语句,如下所示:
if ( x == y)
if (x == (y + 1))
and so on.
如何使用if
在屏幕上显示文件中显示的所有grep
语句。
我尝试过:grep -R "if ( * == * )" *
但它没有显示所需的结果。
答案 0 :(得分:1)
看起来你正试图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
...这会检查=
之前的字符不是(^
)和!<>=+*/^-
([]
),而后面的字符不是=
。
这不是完美的,但我相信你可以自己调整正则表达式来满足你的需求。