Regex in awk e WinGrep
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!
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.
'