Lista Grep para texto com 2 números e 2 letras

1

Eu tenho uma lista de números hexadecimais de 0000 a FFFF.

Estou tentando analisar a lista para incluir apenas texto com 2 números 0-9 e 2 letras A-F, mas não estou tendo sorte. Eu tenho tentado egrep -v [0-9]{3} e enviado os resultados para um arquivo pensando que encontraria qualquer entrada sem 3 números e pegaria esse arquivo e fazendo egrep -v [0-9]{4} contra o out do comando anterior, mas isso não está funcionando, pois eu ainda tem entradas com 3 e 4 números. Eu estava planejando também executar egrep -v [A-F]{3} e egrep -v [A-F]{4} para filtrar o restante, mas ainda não está funcionando.

Qualquer sugestão seria muito apreciada.

    
por Michael 25.05.2013 / 05:16

1 resposta

1

Crie um arquivo como o seguinte

~$ cat Patterns.txt 
[0-9][0-9][A-F][A-F]
[0-9][A-F][0-9][A-F]
[0-9][A-F][A-F][0-9]
[A-F][A-F][0-9][0-9]
[A-F][0-9][A-F][0-9]
[A-F][0-9][0-9][A-F]
~$ 

Esta é a entrada de amostra

~$ cat HEX.txt 
FFFF
08FF
F0AA
FF08
0F0F
F0F0
~$ 

E este é o exemplo de saída

~$ grep -f Patterns.txt HEX.txt 
08FF
FF08
0F0F
F0F0

Explicação:

Pode haver apenas 6 combinações possíveis no seu caso

Number, Number, Letter, Letter
Number, Letter, Number, Letter
Number, Letter, Letter, Number
Letter, Letter, Number, Number
Letter, Number, Letter, Number
Letter, Number, Letter, Letter

Estamos armazenando todas essas combinações em Patterns.txt e pedindo ao grep para usar esses padrões para encontrar valores de HEX.txt

    
por thefourtheye 25.05.2013 / 07:29