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?