Technician Geschrieben 7. Januar 2003 Geschrieben 7. Januar 2003 Hallo, kann es sein, dass der Befehl nur eine bestimmte Zeichenanzahl zurückliefert - nämlich 1024 Zeichen?! Ich bearbeite nämlich eine Datei, in der jede Zeile mehr als 3000 Zeichen hat - und wenn ich find "abc" d:\daten.dat > d:\output.dat ausführe, bekomme ich exakt die ersten 1024 Zeichen je gefundener Zeile zurück... Wie kann man das umgehen?! Wäre äußerst schade, wenn's da keine Möglichkeit gäbe:( Grüße, Technician Zitieren
Guybrush Threepwood Geschrieben 7. Januar 2003 Geschrieben 7. Januar 2003 Hi, hab mal gegoogelt und diese Links hier gefunden. Leider hab ich hier nur beschränkten Internetzugriff und kann mir keinen von denen Ankucken, vielleicht helfen Sie dir ja. Vor allem der 7. Link hört sich hilfreich an. Gruß Guybrush Zitieren
Technician Geschrieben 7. Januar 2003 Autor Geschrieben 7. Januar 2003 Hi Guybrush, war leider auch nix dabei Hab schon gegoogelt nach +dos+find+1024, aber das hat mir auch nicht geholfen Gruß, Technician Zitieren
Marlboro Man Geschrieben 7. Januar 2003 Geschrieben 7. Januar 2003 ich hab mal gehört das dos eine zeichenbegrenzung in der zeile hat. irgendwann bekommt es probleme wurde mir gesagt. kann sein das sie bei 1024 liegt. bin mir aber nicht sicher ob das stimmt. Zitieren
GlowingHeart Geschrieben 7. Januar 2003 Geschrieben 7. Januar 2003 hab mal eine Seite die den Befehl FIND genau beschreibt http://home.t-online.de/home/manfred.treutner/dosf.htm musst etws nach unten scrollen. Hab den Befehl selbst mal getestet! Habe eine Datei "test.txt" erstelt mit 150.000 Zeichen "abc" teilweise in Folge, teilweise mit <br> 3277 Zeichen auf einer Zeile Im Dosfenster Befehlseingabe C:\>find "abc" test.txt > test1.txt In der Datei "test1.txt stand dann 1:1 übernommen: ---------- test.txt abcabcabcabcabcabcabca.....usw. alle 150.000 Zeichen. Also KEIN Begrenzung von 1024 zeichen Zitieren
hades Geschrieben 7. Januar 2003 Geschrieben 7. Januar 2003 Welches Windows-Shell wird verwendet, command.com oder cmd.exe? Koennte ja durchaus sein, dass es nicht am find selbst liegt. Zitieren
nic_power Geschrieben 7. Januar 2003 Geschrieben 7. Januar 2003 Originally posted by hades Welches Windows-Shell wird verwendet, command.com oder cmd.exe? Koennte ja durchaus sein, dass es nicht am find selbst liegt. Ich meine mich zu erinnern, dass es unter Umstaenden Probleme mit der Groesse der Ein- und Ausgabepuffer der Shell gibt. D.h. Find liefert zwar den vollstaendigen String zurueck, dieser wird von der Dosshell (Umleitung der Ausgabe) auf 1024 Zeichen gekuerzt. Nic Zitieren
Technician Geschrieben 8. Januar 2003 Autor Geschrieben 8. Januar 2003 Originally posted by GlowingHeart Habe eine Datei "test.txt" erstelt mit 150.000 Zeichen "abc" teilweise in Folge, teilweise mit <br> 3277 Zeichen auf einer Zeile Im Dosfenster Befehlseingabe C:\>find "abc" test.txt > test1.txt In der Datei "test1.txt stand dann 1:1 übernommen: ---------- test.txt abcabcabcabcabcabcabca.....usw. alle 150.000 Zeichen. Also KEIN Begrenzung von 1024 zeichen komisch :confused: Bei mir hört der in der Ausgabezeile nach exakt 1024 Zeichen auf:( Zitieren
Technician Geschrieben 8. Januar 2003 Autor Geschrieben 8. Januar 2003 Originally posted by hades Welches Windows-Shell wird verwendet, command.com oder cmd.exe? Koennte ja durchaus sein, dass es nicht am find selbst liegt. Woran kann ich feststellen, welche Shell verwendet wird bzw. ggf. umstellen?! (ich gehöre zu den Leuten, die zuerst Windows und dann DOS kennenlernten... also, ich kenn mich mit DOS nur äußerst wenig aus ) Zitieren
Technician Geschrieben 8. Januar 2003 Autor Geschrieben 8. Januar 2003 Ich habe auch schon ausprobiert TYPE d:\daten.dat | FIND "abc" > d:\output.dat gleiches Problem... Zitieren
DanielH Geschrieben 8. Januar 2003 Geschrieben 8. Januar 2003 Originally posted by Technician Woran kann ich feststellen, welche Shell verwendet wird bzw. ggf. umstellen?! (ich gehöre zu den Leuten, die zuerst Windows und dann DOS kennenlernten... also, ich kenn mich mit DOS nur äußerst wenig aus ) Unter windows 2000 wird standardmäßig cmd.exe gestartet. Feststellen kannst du das indem du start->programme->zubehöhr->eingabeaufforderung und dort rechtsklick->Eigenschaften machst. An die command.com kommst du z.B. über Ausführen und command. MfG Zitieren
Technician Geschrieben 8. Januar 2003 Autor Geschrieben 8. Januar 2003 Originally posted by DanielH Unter windows 2000 wird standardmäßig cmd.exe gestartet. Feststellen kannst du das indem du start->programme->zubehöhr->eingabeaufforderung und dort rechtsklick->Eigenschaften machst. An die command.com kommst du z.B. über Ausführen und command. MfG Okay. Ich bin zwar unter WinNT, aber da geht das natürlich auch. Jedenfalls, ich erhalte in beiden Fällen nicht mehr als 1024 Zeichen zurück. @GlowingHeart Unter welchem Betriebssystem hast du das mit den mehr als 1024 Zeichen geschafft? Zitieren
GlowingHeart Geschrieben 8. Januar 2003 Geschrieben 8. Januar 2003 Originally posted by Technician @GlowingHeart Unter welchem Betriebssystem hast du das mit den mehr als 1024 Zeichen geschafft? Benutze Win98SE Zitieren
Technician Geschrieben 9. Januar 2003 Autor Geschrieben 9. Januar 2003 Originally posted by GlowingHeart Benutze Win98SE okay. Das hilft hier natürlich nicht weiter... bleibt mir also nix anderes übrig, als über den Weg "UNIX" zu gehen:p Zitieren
nic_power Geschrieben 9. Januar 2003 Geschrieben 9. Januar 2003 Originally posted by Technician okay. Das hilft hier natürlich nicht weiter... bleibt mir also nix anderes übrig, als über den Weg "UNIX" zu gehen:p Denk aber dran, dass das Unix find mit dem Dos-Find nichts viel gemeinsam hat (eigentlich nichts). Der entsprechende Befehl ist grep. Nic Zitieren
Technician Geschrieben 9. Januar 2003 Autor Geschrieben 9. Januar 2003 Originally posted by nic_power Denk aber dran, dass das Unix find mit dem Dos-Find nichts viel gemeinsam hat (eigentlich nichts). Der entsprechende Befehl ist grep. Nic Das UNIX-Script hatte ich schon vor längerer Zeit geschrieben. Nur jetzt wollte ich eben auch eine Möglichkeit unter DOS haben - um komplett alles unter NT starten zu können... Übrigens: ich mach das sowieso unter UNIX nicht per grep, sondern per sed (da ich nicht nur einfach die Zeilen brauche, die das Suchwort enthalten - nein, das Suchwort muss an einer bestimmten Stelle stehen...). Unter NT hätte ich eben zusätzlich noch mal die von find ausgegebenen Zeilen mit nem kleinen Progrämmchen überprüfen müssen. Zitieren
nic_power Geschrieben 9. Januar 2003 Geschrieben 9. Januar 2003 Originally posted by Technician Das UNIX-Script hatte ich schon vor längerer Zeit geschrieben. Nur jetzt wollte ich eben auch eine Möglichkeit unter DOS haben - um komplett alles unter NT starten zu können... Übrigens: ich mach das sowieso unter UNIX nicht per grep, sondern per sed (da ich nicht nur einfach die Zeilen brauche, die das Suchwort enthalten - nein, das Suchwort muss an einer bestimmten Stelle stehen...). Je nach Unix geht das auch mit grep ("grep -E" bzw. "egrep"), aber sed ist wahrscheinlich schneller. Nic Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.