2

我希望在我的代码上节省一些执行时间。因此,我不想对单个文件应用 grep(使用 foreach),而是想同时对数组中的所有文件使用 grep

我在用:

`grep -Pi "search string" $files` 

但这并没有给我想要的结果,因为搜索字符串在双引号中(“...”)并且完整的命令在反引号中。

这里$files包含由单个空格分隔的所有文件的路径,并且search string有正则表达式^\\s*abc|bcd|efg\\s+...

4

2 回答 2

6

帮自己一个忙并安装ack。之后你将很少使用grepack

  • 自动递归到子目录

  • 将搜索参数视为 Perl 正则表达式

  • 丰富的命令行选项集比 DWIMmy 更强大grep

App::Ack通过从 CPAN安装发行版来安装

于 2013-08-05T17:35:43.893 回答
0

像这样的东西应该工作

 $s1='search string';

 @x = qx(grep -Pi "$s1" $files);
于 2013-08-05T22:52:00.177 回答