Wie bekomme ich mit grep nur Dateinamen ohne Pfad?

Ich habe folgendes Problem.

Ich mache ein Grep wie:

$ command = grep -r -i --include = *. cfg 'host {' /omd/sites/mesh/etc/icinga/conf.d/objects

Ich habe folgende Ausgabe erhalten:

/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{
...

Für alle * .cfg-Dateien.

Mitexec($command,$array)

Ich habe das Ergebnis in einem Array übergeben.

Ist es möglich, nur die Dateinamen als Ergebnis des Befehls grep zu erhalten?

Ich habe Folgendes versucht:

$Command=    grep -l -H -r -i --include=*.cfg 'host{' /omd/sites/mesh/etc/icinga/conf.d/objects

aber ich habe das gleiche Ergebnis.

Ich weiß, dass im Forum ein ähnliches Thema existiert. (Wie kann ich grep verwenden, um nur Dateinamen (keine Inline-Übereinstimmungen) unter Linux anzuzeigen?), aber die Lösung funktioniert nicht.

Mit "exec ($ Command, $ result_array)" versuche ich ein Array mit den Ergebnissen zu erhalten. Die genannten Lösungen funktionieren alle, aber ich kann mit exec () kein Ergebnisarray erhalten.

Kann mir jemand helfen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage