björn sippel: leerzeichen in dateipfaden ersetzen

Beitrag lesen

Hallo zusammen,

für eine Auswertung von regmon-logfiles (sysinternal)
sollen aus den Pfadangaben eventuell vorhandene Leerzeichen
ersetzt werden durch ein beliebiges Zeichen.
Da in der Zeile nicht nur Pfade vorhanden sind, sondern
weitere Angaben vorhanden sind, sollen nur die Pfade
manipuliert werden.

Also, gesucht sind 2 Suchmuster:
Suchmuster 1(manipuliere alle Verzeichnisebenen):
suche innerhalb aller !! ....\ nach leerzeichen und ersetze
diese durch z.b. "_".

Suchmuster 2(manipuliere Dateinamen):
suche innerhalb ......[.Dateiendung] nach Leerzeichen
und ersetze diese durch "_".

Meine bisherigen Versuche bewirken nur die einmalige
Ersetzung von z.B. 2 Leerzeichen nach einem Backslash.
_______________________________________________________

$zstring='H:\ALL USERS hh\hallo k j h ';

$zstring =~ s/(\.*?\w+)\s(\w+)\s(\w+?)\/$1_$2_$3\/g;

print "\nstring----$zstring\n";

ergibt:
-->>H:\ALL_USERS_hh\hallo k j h
_______________________________________________________
Problem bei obigem Code ist, dass kein dynamisches Ersetzen
beliebig oft vorhandener Leerzeichen funktioniert. Auch das
Ersetzen mehrerer Verzeichnisebenen funktioniert nicht.