标签: perl grep
我希望在代码上节省一些执行时间。因此,我不想在单个文件上使用grep(使用foreach),而是希望同时在数组中的所有文件上使用grep
我正在使用:
`grep -Pi "search string" $files`
但是它没有给我想要的结果,因为搜索字符串是双引号(“...”)而完整的命令是反引号。
此处$files包含以单个空格分隔的所有文件的路径,search string具有^\\s*abc|bcd|efg\\s+...
$files
search string
^\\s*abc|bcd|efg\\s+...
答案 0 :(得分:6)
帮自己一个忙,安装ack。之后你很少会使用grep。 ack:
ack
grep
自动递归到子目录
将搜索参数视为Perl正则表达式
丰富的命令行选项集比grep
通过从CPAN安装App::Ack分发版来安装
App::Ack
答案 1 :(得分:0)
这样的事情应该起作用
$s1='search string'; @x = qx(grep -Pi "$s1" $files);