如何在多个文件上同时使用grep命令?

时间:2013-08-05 17:28:57

标签: perl grep

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

我正在使用:

`grep -Pi "search string" $files` 

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

此处$files包含以单个空格分隔的所有文件的路径,search string具有^\\s*abc|bcd|efg\\s+...

等正则表达式

2 个答案:

答案 0 :(得分:6)

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

  • 自动递归到子目录

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

  • 丰富的命令行选项集比grep

    更多功能和DWIMmy

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

答案 1 :(得分:0)

这样的事情应该起作用

 $s1='search string';

 @x = qx(grep -Pi "$s1" $files);