Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我希望在我的代码上节省一些执行时间。因此,我不想对单个文件应用 grep(使用 foreach),而是想同时对数组中的所有文件使用 grep
我在用:
`grep -Pi "search string" $files`
但这并没有给我想要的结果,因为搜索字符串在双引号中(“...”)并且完整的命令在反引号中。
这里$files包含由单个空格分隔的所有文件的路径,并且search string有正则表达式^\\s*abc|bcd|efg\\s+...
$files
search string
^\\s*abc|bcd|efg\\s+...
帮自己一个忙并安装ack。之后你将很少使用grep。ack:
ack
grep
自动递归到子目录
将搜索参数视为 Perl 正则表达式
丰富的命令行选项集比 DWIMmy 更强大grep
App::Ack通过从 CPAN安装发行版来安装
App::Ack
像这样的东西应该工作
$s1='search string'; @x = qx(grep -Pi "$s1" $files);