Frage

Also ich bin für ein Muster wie folgt aussehen:

size = '0x0'

in einer Log-Datei - aber ich bin daran interessiert ist nur in großen Größen (4 Ziffern oder mehr). Die folgende Regex funktioniert gut in EditPadPro (nettes Tool BTW)

size = '0x [0-9a-fA-F] {4}

Aber die gleiche Regex funktioniert nicht in awk - scheint, wie die Wiederholung {4} ist es vermasselt. Das Gleiche gilt für WinGrep - jede Idee von den Regex-Gurus? Dank!

War es hilfreich?

Lösung

Sie können in der Tat Gebrauch awk, mit einem Vorbehalt.

Wie auf der folgenden Seite erwähnt, benötigen Sie eine spezielle Befehlszeilenoption (--re-Intervall), um es heraus funktioniert, da das Intervall Ausdruck (die {4}) nicht im Standard ist:

http://kansai.anesth.or.jp/gijutu/ awk / gawk / gawk_28.html

Also am Ende, Sie wollen etwas, das wie folgt aussieht:

awk --re-interval "/size='0x[0-9a-fA-F]{4,}'/" thefile

Damit werden die Zeilen auszudrucken, die übereinstimmen.

Andere Tipps

Ich weiß nicht, von irgendwelchen elegante Alternativen zum {4} Syntax, aber wenn es nicht in der gewünschten Umgebung arbeiten Sie in diesem hässlichen Hack greifen konnte:

size='0x[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]+

Hope, das hilft!

Adam

Sie die letzte Apostroph nicht vergessen.

'
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top