Original von lolo
P.S.:
|
Quellcode
|
1
2
3
|
knoppix@1[knoppix]$ echo -n "bla" > test
knoppix@1[knoppix]$ ls -l test
-rw-r--r-- 1 knoppix knoppix 3 2007-05-07 22:03 test
|
man brauch keinen hexedit für 0x0a. -n macht den \n weg. also quasi -\n
Stimmt. Manchmal sieht den Wald vor lauter Bäumen nicht mehr ...
Jedenfalls habe ich Zwischenzeitlich am bingrep ziemlich gedreht. Ich habe aus dem Teil ein GNU autotools Projekt gemacht.
Es kann nun via stdin auch gefüttert werden, sollte mehr als 4GB an Daten vetragen und gibt auf Wunsch Context-Zeilen aus.
Außerdem verwende ich jetzt den Boyer-Moore Suchalgorithmus und nicht mehr den naiven Ansatz.
Ich habe bereits das Projekt auf sourceforge beantragt. Ein Aufnahme-(oder Absage-) Bestätigung bekomme ich in den nächsten Tagen.
However, in der Zwischenzeit kannst mir je eine PN mit deiner mail schicken und ich schick dir den tarball retour. Dann auspacken, GNU-3er (./configure; make; sudo make install) und ausprobieren ...
... und wenn du Bock hast: mir fehlt noch ein klitze-kleines Teil. Interesse? Mit ein paar kleinen C Kenntnissen kommst dann mit in die Developer-List
edit:
Also die ausgabe mit Progressreport ist doch eine extreme Bremse ... aber ok:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
$ time ./bingrep -p -C 64 -i random pf
scanning ... 9259285 (88%)
0x8d4915 (9259285)
0x00000000008d48d5: a0 66 9f 9d e6 e3 c5 e4 d4 8b c6 24 27 55 da 01 .f...... ...$'U..
0x00000000008d48e5: a8 ef bb 37 5c 2c 16 34 06 32 3b 35 7a 23 3c e9 ...7\,.4 .2;5z#<.
0x00000000008d48f5: 0e 92 f2 e9 08 f1 97 b0 9f b7 27 89 04 06 cf 22 ........ ..'...."
0x00000000008d4905: 92 9c 7e 67 5d d5 e0 e7 e0 2f 8a 42 75 59 42 ef ..~g]... ./.BuYB.
0x00000000008d4915: 70 61 74 74 65 72 6e a9 1b cf d9 d2 23 62 0f 92 pattern. ....#b..
0x00000000008d4925: c5 8d 9f ff 5f 02 9b c0 5c 5e 18 5a c4 df 10 7b ...._... \^.Z...{
0x00000000008d4935: a6 3d 86 e4 92 3c 37 58 3e cb 28 f2 81 d9 34 a0 .=...<7X >.(...4.
0x00000000008d4945: d9 d1 c7 0c 04 dc c0 b4 06 84 29 85 75 82 1b b8 ........ ..).u...
scanning ... 10485760 (100%)
real 1m21.375s
user 0m4.786s
sys 0m5.143s
|
Verglichen mit:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
$ time ./bingrep -C 64 -i random pf
0x8d4915 (9259285)
0x00000000008d48d5: a0 66 9f 9d e6 e3 c5 e4 d4 8b c6 24 27 55 da 01 .f...... ...$'U..
0x00000000008d48e5: a8 ef bb 37 5c 2c 16 34 06 32 3b 35 7a 23 3c e9 ...7\,.4 .2;5z#<.
0x00000000008d48f5: 0e 92 f2 e9 08 f1 97 b0 9f b7 27 89 04 06 cf 22 ........ ..'...."
0x00000000008d4905: 92 9c 7e 67 5d d5 e0 e7 e0 2f 8a 42 75 59 42 ef ..~g]... ./.BuYB.
0x00000000008d4915: 70 61 74 74 65 72 6e a9 1b cf d9 d2 23 62 0f 92 pattern. ....#b..
0x00000000008d4925: c5 8d 9f ff 5f 02 9b c0 5c 5e 18 5a c4 df 10 7b ...._... \^.Z...{
0x00000000008d4935: a6 3d 86 e4 92 3c 37 58 3e cb 28 f2 81 d9 34 a0 .=...<7X >.(...4.
0x00000000008d4945: d9 d1 c7 0c 04 dc c0 b4 06 84 29 85 75 82 1b b8 ........ ..).u...
real 0m0.124s
user 0m0.070s
sys 0m0.013s
|
random ist dabei ein 10MB file (erzeugt via dd und /dev/urandom) und ich suche darin nach dem Muster "pattern" (pf) welches ich händisch via khexedit reingesetzt habe.