Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 如何在多个文件上同时使用grep命令?_Perl_Grep - Fatal编程技术网

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

Perl 如何在多个文件上同时使用grep命令?,perl,grep,Perl,Grep,我希望在代码上节省一些执行时间。因此,我不希望对单个文件应用grep(使用foreach),而是希望同时对数组中的所有文件使用grep 我正在使用: `grep -Pi "search string" $files` 但它并没有给我想要的结果,因为搜索字符串是双引号(“…”),而complete命令是反勾号 在这里,$files包含所有文件的路径,这些文件由一个空格分隔,并且搜索字符串具有类似regex的^\\s*abc | bcd | efg\\s+…请帮个忙并安装。在此之后,您很少使用g

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

我正在使用:

`grep -Pi "search string" $files` 
但它并没有给我想要的结果,因为搜索字符串是双引号(“…”),而complete命令是反勾号


在这里,
$files
包含所有文件的路径,这些文件由一个空格分隔,并且
搜索字符串
具有类似regex的
^\\s*abc | bcd | efg\\s+…
请帮个忙并安装。在此之后,您很少使用
grep
<代码>确认:

  • 自动递归到子目录中

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

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


通过从CPAN安装分发版来安装,类似的方法应该可以工作

 $s1='search string';

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

谢谢,但搜索字符串中有正则表达式,ack也处理正则表达式吗?我是perl新手,我必须搜索像“^\\s*abc|bcd|efg\\s+…是的,ack支持正则表达式。它是用纯perl编写的。