Hallo, Am Sun, 25 Jul 2004, Al Bogner schrieb:
Am Sonntag, 25. Juli 2004 16:57 schrieb David Haller:
Ich vermute eher nicht. Aber bei 4 Mio. Zeilen ist das eher eine Vermutung. Es handelt sich um Wortlisten aus verschiedenen Sprachen, die man zB zum Testen von PW verwenden kann.
Und die sind auch unterschiedlich kodiert, u.a. auch als cp1252.
Was macht das dann für einen Sinn, wenn die diversen Sprachen in _1_ Datei anbieten?
Einfach alle "Strings" (als Bytes / binaer aufgefasst) in einer Datei. Man liest einfach die Bytes aus und testet darauf, und ignoriert die Kodierung schlicht und einfach, es sind doch eh einfach alles nur Bits ;)
Interessant ist ja, dass einige Sonderzeichen passen. Ich vermute mal, dass vi die Datei per default mit utf8-Zeichensatz darstellt.
Huch![tm]
Gibt es eigentlich einen Editor unter X, der so große Dateien brauchbar bearbeiten kann? KWrite verabschiedet sich bevor die Datei fertig geladen ist.
(X)Emacs kommt mit solch grossen (sind ja nur ~40 MB) Dateien gut klar, aber zumindest meine uralte Version (20.4 "Emerald" von Fruehjahr '99) wird dann zumindest bei manchen Aktionen ziemlich lahm und legt u.U. auch mal minutenlang ne Pause ein (v.a. wenn font-lock aktiv ist). Neuere Versionen kommen AFAIK aber besser mit sowas klar. Der vim kommt aber auch mit wirklich grossen Dateien sehr gut zurecht (Tests habe ich u.a. mit MBox-Dateien von >400 MB schon gemacht ;) Bei solchen Dateien nehme auch ich(!) lieber vim als xemacs. Allerdings, wie gesagt, mein xemacs ist ueber 5 Jahre alt, mein vim 5.7 gerade mal gut 2 Jahre. Einen anderen GUI-Editor ausser XEmacs, GNU Emacs und gvim (ja, XEmacs und GNU Emacs laufen beide auf der Konsole und unter X, die XEmacs GUI gefaellt mir aber besser als die GNU Emacs GUI), der auch nur hinreichend gut ist und auch mit solch grossen Dateien klar kommt kenne ich nicht. Aber was spricht denn dagegen, ein xterm gross genug zu machen und dort vim aufzurufen? Oder gvim zu verwenden? BTW: ich hab gvim mit allen 3 GUI-TKs (athena, motif und gtk) installiert...
BTW: bist du sicher, daß das eine "reine" Textdatei ist?
Wenn du Lust hast, dann schau dir das an: wget ftp://ftp.se.openwall.com/pub/wordlists/all.gz
Ich glaube nicht, dass du die konvertieren kannst, wenn dann muesstest du die wohl in einzelne Brocken zerlegen, die jew. gleich kodiert sind. Du musst die Datei also als quasi-binaer betrachten.
Ich vermute mal, dass diese 1 Datei die Summe der Einzeldateien von ftp://ftp.se.openwall.com/pub/wordlists/languages/ ist.
Offenbar: ==== $ head -78 all #!comment: This list has been compiled by Solar Designer of Openwall Project, #!comment: http://www.openwall.com/wordlists/ #!comment: #!comment: Input wordlist files, in order: #!comment: passwords/password.lst #!comment: passwords/lower.lst #!comment: languages/English/1-tiny/lower.lst [..] #!comment: languages/Russian/windows-1251/2-extra/cslang.lst 12345 ====
Firefox stellt ftp://ftp.se.openwall.com/pub/wordlists/languages/German/1-small/lower.gz nicht richtig dar: abergla"ubischen, egal welche Kodierung ich einstelle.
Ja, die (La)TeX "(n)german" Kodierung ist eben spezifisch. Warum in dieser Datei aber diese Kodierung auftaucht weiss ich nicht: $ grep 'abergl.*bisch' all abergla"ubischen aberglaeubisch aberglaeubischem aberglaeubischen aberglaeubischer abergla"ubisch abergla"ubischem abergla"ubischer Seltsam, dass da nicht 'abergläubisch' auftaucht, weil anderswo werden durchaus auch 'ä' verwendet... $ grep 'ä' all | wc -l 78899 Die Datei erscheint mir aber auch so sehr fehlerhaft: $ grep '"[^aeious]' all | head -3 abfa"llt abgea"ndert abgea"nderte Hier ist das '"' offenbar an der falschen Position. Man muesste also diese Dreher korrigieren und dann evtl. die TeX-Syntax umkodieren: $ sed 's/\([aeiouAEIOUs]\)"/"\1/g' < all | grep '"[^aeiouAEIOUs]' $ ### [keine Ausgabe, d.h. es kommt auch dann keine Kombination von " ### mit " plus [aeiouAEIOUs] vor Mit sowas wie sed 's/\([aeiouAEIOUs]\)"/"\1/g;s/\("[aeiouAEIOUs]\)/\\\1/g' < all koennte man also diese Stellen in die korrekte TeX-Kodierung konvertieren mit der dann auch recode klarkommt. Ich wuerde aber nur die Dreher '[aeiouAEIOUs]"' statt '"[aeiouAEIOUs]' beseitigen (siehe den ersten sed Befehl oben).
Ähnlich ist es mit ftp://ftp.se.openwall.com/pub/wordlists/languages/Spanish/lower.gz, zB maleco`n, das malecón sein sollte. IMHO haben die den Akzent verwechselt.
ACK. Und die Reihenfolge Vokal / Akzent. s.o.
Die 2. Version sieht hier aber wieder korrekt aus. ftp://ftp.se.openwall.com/pub/wordlists/languages/French/lower.gz abaisse'e abaissée
Aber auch hier ist wieder der Dreher Vokal / Akzent drin... Vielleicht soll das ja aber auch ne eigene Kodierung sein, keine Ahnung ;)
Wie kommst du auf die Idee, dass Teile cp1252 kodiert sind?
#!comment: languages/Russian/windows-1251/1-small/acronym.lst #!comment: languages/Russian/windows-1251/1-small/cap.lst #!comment: languages/Russian/windows-1251/1-small/lower.lst #!comment: languages/Russian/windows-1251/1-small/mixed.lst #!comment: languages/Russian/windows-1251/2-extra/cslang.l Ok, ist nicht cp1252, sondern cp1251... ;) Andere Teile sind aber offenbar in KOI8-r kodiert, kurzum: man muss die Datei als binaer auffassen. -dnh -- Well I wish you'd just tell me rather than try to engage my enthusiasm, because I haven't got one. -- Marvin