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-Key: 165725

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

Printed on: April 18, 2024 at 00:04 o'clock

Member: dog
dog May 05, 2011 at 14:15:27 (UTC)
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;
Member: TsukiSan
TsukiSan May 05, 2011 at 14:22:12 (UTC)
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
Member: Syraneus
Syraneus May 09, 2011 at 09:09:47 (UTC)
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