如何将这些行与UNIX的grep
匹配?
call($variable, 'tiki-index.php');
call('string123', 'tiki-index.php');
call(13, 'tiki-index.php');
我试过
user@host:~$ grep -e "smarty->assign(*, 'tiki-index.php');" .
但该命令与上述任何一项都不匹配。
答案 0 :(得分:1)
使用-R使搜索递归。 如果您不希望搜索是递归的,请在*上进行搜索,而不是。
您需要将正则表达式更改为:
"call(.*, 'tiki-index.php');"
或者,聪明的:
"smarty\->assign(.*, 'tiki-index.php');"
有关详细信息,请参阅有关正则表达式的文档。
答案 1 :(得分:1)
我有以下文件
cat x.txt
call($variable, 'tiki-index.php');
call('string123', 'tiki-index.php');
call(13, 'tiki-index.php');
call(sdfadf..df.d.foo);
small(12, 'tiki-index.php');
我的grep返回以下内容,您可以根据需要将其设为特定或一般
grep -e "call.*\'tiki-index.php\');" x.txt
call($variable, 'tiki-index.php');
call('string123', 'tiki-index.php');
call(13, 'tiki-index.php');
答案 2 :(得分:0)
您的模式grep -e "smarty->assign(*, 'tiki-index.php');"
将符合以下条件:
smarty->assign(, 'tiki-index.php');
smarty->assign((, 'tiki-index.php');
smarty->assign(((, 'tiki-index.php');
...
(即*
适用于(
。)
您想要指定任何字符,即.
,然后匹配*
个实例。使用:
grep -e "smarty->assign(.*, 'tiki-index.php');"
代替。