Suchfunktion einrichten

Thx:)
Jetzt habe ich noch weitere Logfiles, wo die Daten zum Teil hex codiert abgelegt sind. Gibt es dafür ireine Lösung? Er gibt mir sonstb viel zu viel text aus, dabei soll er mir nur die hex codes ausgeben
 
Bitte bei solche Beschreibungen immer ein Beispiel bringen, da man sonst raten muss, wie z.B. die Hexdarstellung innerhalb der Datei aussieht.
 
Code:
(^|\s)([a-fA-F0-9]{2}(\s|$)){$N,}

mit $N = mindestanzahl an Stellen des Hexcodes. Wenn $N=1 dann kann man auch statt {1} einfach + schreiben. Für weitere Möglichkeiten lege ich Dir unbedingt die Dokumentation von RegularExpressions ans Herz.

edit:
Code:
egrep '(^|[:space:])([[:xdigit:]]{2}[[:space:]|$]){$N,}' $FILE
für die Konsole.
 
Zuletzt bearbeitet:
Thx für den Code:) Kennst du ne Seite, wo es ziemlich viel zum Thema Linux gibt? Wenn ich über Google nach Lösungen suche, findet man meistens kaum etwas:confused:
 
Diese Lösungen haben weniger mit Linux als mit Regulaären Ausdrücken zu tun.

Eine sehr gute Einführung gibt es unter: http://www.regenechsen.de/phpwcms/index.php?regex_allg

Um den (produktiven) Umgang mit Linux zu lernen empfehle ich sich erstmal die Grundlagen der Konsole anzueignen:
Dateisystem:

Die Shell:

Befehle:

und Scripting:

(das sind auf die schnelle nur Beispiele, es gibt eine Menge andere Seiten zu diesen Themen im Netz)
 
Thx für die Seiten, aber was ich nirgends finden konnte, auch nach langsam suchen mit zig suchwörtern bei google, wie ich bestimmte wörter, zahlen von der suche mit grep ausschließen kann:confused:
 
Ich werd aus diesen ganzen Dokus irwie nicht schlauer, eher verwirren die mich:mad:
EB 7C B8 IF 8C 6D 3H G3

Er muss davon ausgehen, dass in jedem Block eine Zahl und ein Buchstabe ist, was aber nicht zwingend der Fall ist.
 
Ich werd aus diesen ganzen Dokus irwie nicht schlauer, eher verwirren die mich:mad:
EB 7C B8 IF 8C 6D 3H G3

Er muss davon ausgehen, dass in jedem Block eine Zahl und ein Buchstabe ist, was aber nicht zwingend der Fall ist.

Nehmen wir mal den entsprechenden Ausdruck auseinander:
Code:
(^|\s)([a-fA-F0-9]{2}(\s|$)){$N,}

^ Zeilenanfang (oder in eckigen Klammer als Negationszeichen)
\s beliebiges Freizeichen (whitespace - Tab, Space, etc)
[ ] Eines der Zeichen/Zeichenauswahl
{ } Quantisierer
$ Zeilenende
( ) Gruppierung
| Alternativmöglichkeit

Die erste Gruppierung (^|\s) bedeutet also, dass am Anfang des Strings der Zeilenanfang oder ein Whitespace steht.
Dem folgt ([a-fA-F0-9]{2}(\s|$)), und beinhaltet einerseits die die Mögliche Zeichenfolgen a bis f, A bis F oder aber 0-9. Diese Zeichenfolge muss, eingeschränkt durch den Quantisierer {2} immer in 2er-Paaren auftreten und am Ende entweder ein Whitespace oder aber das Zeilenden beinhalten. Der gesamte Ausdruck des paarweisen Auftretens ausgewählter Zeichen in Verbindung mit einem Whitespace oder Zielenden muss -- wieder durch einen Quantisierer -- mindestens $N mal vorkommen.

Etwas Bildlicher:
(Zeilenanfang oder Whitespace) + ((irgendein Zeichen der Menge a - b, A - F und 0 - 9) mal 2) + (Whitespace oder Zeilenende)) mindestens $N mal

HTH
 

Neue Beiträge

Zurück