Domanda

Quindi sto cercando un modello come questo:

size = '0x0'

in un file di registro, ma sono interessato solo a grandi dimensioni (4 cifre o più). Il seguente regex funziona alla grande in EditPadPro (bel tool BTW)

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

Ma lo stesso regex non funziona in awk - sembra che la ripetizione {4,} lo stia rovinando. Lo stesso con WinGrep: qualche idea dei guru regex? Grazie!

È stato utile?

Soluzione

Puoi infatti usare awk, con un avvertimento.

Come menzionato nella pagina seguente, è necessaria un'opzione speciale della riga di comando (--re-intervallo) per farlo funzionare, poiché l'espressione dell'intervallo ({4,}) non è nello standard:

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

Quindi alla fine, vorrai qualcosa che assomigli a:

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

Questo stamperà le linee corrispondenti.

Altri suggerimenti

Non conosco alternative eleganti alla sintassi {4,}, ma se non funziona nel tuo ambiente desiderato potresti ricorrere a questo brutto hack:

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

Spero che questo aiuti!

Adam

Non dimenticare l'ultimo apostrofo.

'
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top