Pergunta

Então, eu estou procurando um padrão como este:

size = '0x0'

em um arquivo de log - mas eu só estou interessado em tamanhos grandes (4 dígitos ou mais). O seguinte regex funciona muito bem em EditPadPro (ferramenta agradável BTW)

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

Mas o mesmo regex não funciona no awk - parece ser a repetição {4,} é estragar tudo. Mesmo com WinGrep - qualquer ideia dos gurus regex? Obrigado!

Foi útil?

Solução

Você pode em uso fato de awk, com uma ressalva.

Como mencionado na página seguinte, você precisa de uma opção de linha de comando especial (--re-intervalo) para torná-lo trabalhar para fora, uma vez que a expressão intervalo (o {4,}) não está no padrão:

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

Assim, no final, você vai querer algo que se parece com:

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

Isto irá imprimir as linhas que jogo.

Outras dicas

Eu não sei de quaisquer alternativas elegantes para o {4,} sintaxe, mas se ele não está funcionando em seu ambiente desejado você poderia recorrer a este corte feio:

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

Espero que isso ajude!

Adam

Não se esqueça o último apóstrofo.

'
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top