syraneus
Goto Top

Ersetzung bringt fehler. Use of uninitialized value in substitution

Hallo, ich habe folgendes Problem. Ich habe eine Datei die ich formatieren muss. Dort sind die ganzen Zeilenumbrüche verschwunden. (Durch einen Admin der mir das so geschickt hat)
Jedenfalls möchte ich nur gerne in diese irre lange zeile mehrere Zeilenumbrüche einfügen. Jedoch meckert Perl immer wieder. Und ich hab schon verschiedene Sachen ausprobiert, aber ich komm leider nicht weiter. Deswegen frag ich nun hier um Hilfe.

Mein Script:

$zeile = $_;
$i = 1;
while ($i <100000)
{
$i++;
$zeile =~ s/\sVerzeichnis\svon/\nVerzeichnis\svon/;
print $i;
}


Hier ein Auschnitt aus der Datei die ich bekommen habe.

Verzeichnis von Z:\vol\servertruppe\ARCHIV\Emailarchivierung\IXOS\Software\IXOS 5.5 CDs\CD_eCONserver 5.5D W2k\WIN32\program files\IXOS\IXOS-eCON\opt\PERL\lib\MSWin32-x86\auto\attrs Verzeichnis von Z:\vol\servertruppe\ARCHIV\IXOS von q8s88_d$\Livelink9.5\adm\WIN32\Program Files\IXOS\opt\PERL\lib\MSWin32-x86\auto\attrs Verzeichnis von Z:\vol\servertruppe\ARCHIV\IXOS von q8s88_d$\Livelink9.5\dbapp\WIN32\Program Files\IXOS\opt\PERL\lib\MSWin32-x86\auto\attrs Verzeichnis von Z:\vol\servertruppe\ARCHIV\IXOS von q8s88_d$\Livelink9.5\dpapp\WIN32\Program Files\IXOS\opt\PERL\lib\MSWin32-x86\auto\attrs Verzeichnis von Z:\vol\servertruppe\ARCHIV\IXOS von q8s88_d$\Livelink9.5\dpdl\WIN32\Program Files\IXOS\opt\PERL\lib\MSWin32-x86\auto\attrs Verzeichnis von Z:\vol\servertruppe\ARCHIV\IXOS von q8s88_d$\Livelink9.5\dpdms\WIN32\Program Files\IXOS\opt\PERL\lib\MSWin32-x86\auto\attrs Verzeichnis von Z:\vol\servertruppe\ARCHIV\IXOS von q8s88_d$\Livelink9.5\dppms\WIN32\Program Files\IXOS\opt\PERL\lib\MSWin32-x86\auto\attrs Verzeichnis von Z:\vol\servertruppe\ARCHIV\IXOS von q8s88_d$\Livelink9.5\dpsap\WIN32\Program Files\IXOS\opt\PERL\lib\MSWin32-x86\auto\attrs Verzeichnis von Z:\vol\servertruppe\ARCHIV\Opentext_IXOS\FSA\INST\LL_FSA_9.6.0\fsa\WIN32\program files\IXOS\opt\PERL\lib\MSWin32-x86-multi-thread\auto\attrs Verzeichnis von Z:\vol\servertruppe\ARCHIV\Opentext_IXOS\FSA\PATCH\FA096-010\dist\fsa\WIN32\program files\IXOS\opt\PERL\lib\MSWin32-x86-multi-thread\auto\attrs Verzeichnis von Z:\vol\servertruppe\ARCHIV\Emailarchivierung\IXOS\Software\IXOS 5.5 CDs\CD_eCONserver 5.5D W2k\WIN32\program files\IXOS\IXOS-eCON\opt\PERL\lib\MSWin32-x86\auto\B

Das hätte ich gerne so formatiert das immer
"Verzeichnis von" am Anfang steht. Also der er jeweils vor "Verzeichnis von" einen Zeilenumbruch einfügt.

Sowas müsste doch auch mit einem Einzeiler funktionieren. Jedoch wie bekomm ich es hin das er die Ersetzung überhaupt durchführt und das er nicht nur 1 Ersetzungen macht, sonder so oft ersetzt wie es halt in der Datei vorkommt.

Hoffe mir kann jemand Helfen.

Vielen Dank

DerChirurg

Content-ID: 165725

Url: https://administrator.de/contentid/165725

Ausgedruckt am: 24.11.2024 um 05:11 Uhr

dog
dog 05.05.2011 um 16:15:27 Uhr
Goto Top
my $in = 'Verzeichnis von Z:\vol\servertruppe\ARCHIV\Emailarchivierung\IXOS\Software\IXOS 5.5 CDs\CD_eCONserver 5.5D W2k\WIN32\program files\IXOS\IXOS-eCON\opt\PERL\lib\MSWin32-x86\auto\attrs Verzeichnis von Z:\vol\servertruppe\ARCHIV\IXOS von q8s88_d$\Livelink9.5\adm\WIN32\Program Files\IXOS\opt\PERL\lib\MSWin32-x86\auto\attrs Verzeichnis von Z:\vol\servertruppe\ARCHIV\IXOS von q8s88_d$\Livelink9.5\dbapp\WIN32\Program Files\IXOS\opt\PERL\lib\MSWin32-x86\auto\attrs Verzeichnis von Z:\vol\servertruppe\ARCHIV\IXOS von q8s88_d$\Livelink9.5\dpapp\WIN32\Program Files\IXOS\opt\PERL\lib\MSWin32-x86\auto\attrs Verzeichnis von Z:\vol\servertruppe\ARCHIV\IXOS von q8s88_d$\Livelink9.5\dpdl\WIN32\Program Files\IXOS\opt\PERL\lib\MSWin32-x86\auto\attrs Verzeichnis von Z:\vol\servertruppe\ARCHIV\IXOS von q8s88_d$\Livelink9.5\dpdms\WIN32\Program Files\IXOS\opt\PERL\lib\MSWin32-x86\auto\attrs Verzeichnis von Z:\vol\servertruppe\ARCHIV\IXOS von q8s88_d$\Livelink9.5\dppms\WIN32\Program Files\IXOS\opt\PERL\lib\MSWin32-x86\auto\attrs Verzeichnis von Z:\vol\servertruppe\ARCHIV\IXOS von q8s88_d$\Livelink9.5\dpsap\WIN32\Program Files\IXOS\opt\PERL\lib\MSWin32-x86\auto\attrs Verzeichnis von Z:\vol\servertruppe\ARCHIV\Opentext_IXOS\FSA\INST\LL_FSA_9.6.0\fsa\WIN32\program files\IXOS\opt\PERL\lib\MSWin32-x86-multi-thread\auto\attrs Verzeichnis von Z:\vol\servertruppe\ARCHIV\Opentext_IXOS\FSA\PATCH\FA096-010\dist\fsa\WIN32\program files\IXOS\opt\PERL\lib\MSWin32-x86-multi-thread\auto\attrs Verzeichnis von Z:\vol\servertruppe\ARCHIV\Emailarchivierung\IXOS\Software\IXOS 5.5 CDs\CD_eCONserver 5.5D W2k\WIN32\program files\IXOS\IXOS-eCON\opt\PERL\lib\MSWin32-x86\auto\B ';  

$in =~ s/Verzeichnis von/\nVerzeichnis von/g;

print $in;
TsukiSan
TsukiSan 05.05.2011 um 16:22:12 Uhr
Goto Top
Hallo DerChirurg,

bin zwar kein Perl-Kenner, aber falls dein Bekannter erst mal glücklich mit einem VBS-4-Zeiler sein könnte, dann dieser hier:
Set FSO = CreateObject("Scripting.FileSystemObject")  
MyOne = FSO.OpenTextFile("C:\OhneUmbruch.txt", 1).ReadAll  
MyOneNew = Replace (MyOne, "Verzeichnis von" , vbcrlf & "Verzeichnis von")  
MyOneNew1 = FSO.CreateTextFile("C:\MitUmbruch.txt", True).Write (MyOneNew)  

Eventuell kannst du das VBS-Schnipsel ja nach Perl exportieren.

Gruss
Tsuki

Ps.: das geht auch als Einzeiler, aber vielleicht möchte es jemand ja auch verstehen face-wink
Syraneus
Syraneus 09.05.2011 um 11:09:47 Uhr
Goto Top
Hallo,

habe es gerade versucht. Es hat funktioniert. Es musste die Variable wirklich nur definiert werden. mit My. Ich hab dann doch nen Einzeiler draus gemacht. Der Funktioniert hat. Hier für zukünftige Anfragen, falls es jemanden interessiert.

perl -lne "$zeile = $_; $zeile =~ s/Verzeichnis von/\nVerzeichnis von/g; print $zeile" "D:\19.txt"

mfg DerChirurg