Veröffentlicht 30. April 200916 j Weis jemand zufällig ob es eine Begrenzung für die maximale Länge einer Anweisung in SED (Stream Editor) gibt ? Wenn meine Anweisung 222 Zeichen lang ist funktioniert sie Tadellos. Verlänger ich aber Pfad oder Dateinamen so dass sie insgesamt 224 Zeichen hat steht folgende Meldung dort: "Das angegebene Programm kann nicht ausgeführt werden"
30. April 200916 j Hast du mal den Quelltext? LIMITS sed allows a limit of 40 kilobytes per line. It does not allow the NUL character. The maximum length of a global command is 256 characters, including newlines. Hier ein Link oder hier. Bearbeitet 30. April 200916 j von bigvic
30. April 200916 j es ist eine Reihe von Batchdateien die ich nacheinander ausführe. test0.bat: --- C: dir /s /b "C:\isb_abgleichen\beispiel\version2\*.db.xml" > xml_dateien1.txt FOR /f %%f IN (xml_dateien1.txt) DO echo sed -e "s/.*<password>.*<\/password>/<password>??????<\/password>/g" %%f ^>^> %%f1>> "C:\isb_abgleichen\beispiel\version2\test1.bat" --- test1.bat (wird durch test0.bat gefüllt): --- sed -e "s/.*<password>.*<\/password>/<password>??????<\/password>/g" C:\isb_abgleichen\beispiel\version2\helmut.db.xml >> C:\isb_abgleichen\beispiel\version2\helmut.db.xml1 sed -e "s/.*<password>.*<\/password>/<password>??????<\/password>/g" C:\isb_abgleichen\beispiel\version2\hugo.db.xml >> C:\isb_abgleichen\beispiel\version2\hugo.db.xml1 sed -e "s/.*<password>.*<\/password>/<password>??????<\/password>/g" C:\isb_abgleichen\beispiel\version2\olaf.db.xml >> C:\isb_abgleichen\beispiel\version2\olaf.db.xml1 sed -e "s/.*<password>.*<\/password>/<password>??????<\/password>/g" C:\isb_abgleichen\beispiel\version2\dor\t\herbert.db.xml >> C:\isb_abgleichen\beispiel\version2\dor\t\herbert.db.xml1 sed -e "s/.*<password>.*<\/password>/<password>??????<\/password>/g" C:\isb_abgleichen\beispiel\version2\hier\karl.db.xml >> C:\isb_abgleichen\beispiel\version2\hier\karl.db.xml1 --- Den SED befehl von herbert meckert er dann an !
30. April 200916 j sed -e "s/.*<password>.*<\/password>/<password>??????<\/password>/g" C:\isb_abgleichen\beispiel\version2\dor\t\herbert. db.xml >> C:\isb_abgleichen\beispiel\version2\dor\t\herbert. db.xml1 Sind die Leerzeichen beim kopieren entstanden oder ist das tatsächlich so?
30. April 200916 j mhm stimmt is mir bisher gar nich aufgefallen. Danke für den Tipp werd ich nächste Woche mal prüfen warum sich da Leerzeichen einschleichen.
4. Mai 200916 j Sind die Leerzeichen beim kopieren entstanden oder ist das tatsächlich so? also die Leerzeichen sind doch beim Kopieren entstanden zumindets hab ich jetzt keine mehr das Problem besteht aber dennoch weiterhin.
11. Mai 200916 j Mal kurz in die Runde gefragt kennt sich jemand mit dem Tool : "Swiss file knife" kurz sfk aus ? wenn ja bitte mal hier reinschreiben. Hätte da mal ne Frage...
11. Mai 200916 j Wieso schreibst du nicht einfach dein Anliegen (ggf. in einem neuen Thread mit entsprechendem Titel)? Du hast ja auch in diesem Thread nicht erst gefragt, ob sich jemand mit sed auskennt und auf ein "ja" gewartet, bis du deine Frage stellst?!
11. Mai 200916 j Hast du Perl auf dem Rechner installiert? Wenn ja, dann hier - ausnahmsweise - ein Quickhack der funktionieren sollte. (Auf Windows musst mit den Pfaden aufpassen bzw. diese anpassen) #!/usr/bin/perl -w $path="/tmp"; foreach my $filename (glob("${path}/*.xml")) { print $filename."\n"; open(LESEN,"$filename") or die "Fehler beim LESEN: $!\n"; open(SCHREIBEN,">${filename}.neu") or die "Fehler beim SCHREIBEN: $!\n"; while(defined(my $line =<LESEN>)) { $line =~ s#<password>.*?</password>#<password>?????</password>#g; print SCHREIBEN $line; } close(LESEN); close(SCHREIBEN); } Bearbeitet 11. Mai 200916 j von bigvic
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.