我遇到了以下问题。
我正在执行类似于grep的操作:
$command = grep -r -i --include=*.cfg 'host{' /omd/sites/mesh/etc/icinga/conf.d/objects
我得到了以下输出:
/omd/sites/mesh/etc/icinga/conf.d/objects/testsystem/test1.cfg:define host{
/omd/sites/mesh/etc/icinga/conf.d/objects/testsystem/test2.cfg:define host{
/omd/sites/mesh/etc/icinga/conf.d/objects/testsystem/test3.cfg:define host{
...
对于所有的*.cfg文件。
使用 exec($command,$array)
,
我将结果放在一个数组中。
是否可能仅获取grep命令的文件名作为结果。
我尝试了以下操作:
$Command= grep -l -H -r -i --include=*.cfg 'host{' /omd/sites/mesh/etc/icinga/conf.d/objects
但我得到了相同的结果。
我知道在论坛上存在一个类似的主题。(如何在Linux上使用grep仅显示文件名(不显示行匹配项)?),但解决方案不起作用。
我尝试使用"exec($Command,$result_array)"获取带有结果的数组。 提到的解决方案都有效,但我无法用exec()获得结果数组。
有人能帮助我吗?