如何将这些行与 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');" .
但该命令与上述都不匹配。
使用 -R 使搜索递归。如果您不希望搜索是递归的,请在 * 而不是 上进行搜索。
您需要将您的正则表达式更改为:
"call(.*, 'tiki-index.php');"
或者,聪明地:
"smarty\->assign(.*, 'tiki-index.php');"
有关更多信息,请参阅有关正则表达式的文档。
我有以下文件
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');
您的模式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');"
反而。