Awk Search – Clases de caracteres combinados en la misma cadena

Buenas tardes,

Estoy intentando utilizar varias classs de personajes al mismo time sin éxito. Dada una columna que contiene el URI del tráfico HTTP, quiero que el REGEX identifique las líneas donde el campo URI contiene una cadena de text de 6-10 caracteres que contiene numbers Y letras minúsculas … al less una de cada, pero NO letras mayúsculas.

Esta búsqueda NO estará limitada a un personaje específico o parte de la cadena …

Cadenas de testing:

aasd4567 9f7g6s5df 0hjksdf73 123456789 12345/1234a Wordswords W0rdsW4rds aasd4/567af 9f7g6s5dfasdf 0hjks/asdf 12345/1234asd Wordswords12 W0rdsW4rds12312312 

Tenía la esperanza de poder utilizar un pequeño boolean con corchetes, es decir:

 awk --re-interval '$1 ~ /([0-9]+&[az]+){6,10}/' 

Pero eso no funciona. Y obviamente, combinarlos tampoco funcionará porque

 awk --re-interval '$1 ~ /[a-z0-9]{6,10}/' 

todavía devuelve cadenas sin ningún número y sin letras minúsculas.

Incluso traté de encontrar maneras de combinar [[: lower:]] y [[: digit:]] pero tuve el mismo problema que el primer ejemplo anterior.

Estoy seguro de que es una solución súper fácil, ¿qué me estoy perdiendo? No estoy en contra de usar gawk / grep / sed / etc, cualquiera que sea la herramienta más eficiente para esta tarea.

Gracias

Si entendí su pregunta correctamente, podría usar primero la match , luego RSTART y RLENGTH para extraer la secuencia correspondiente y luego examinarla para RLENGTH la presencia de un dígito Y un carácter, por lo tanto:

 awk --re-interval '{match($1, /[[:lower:][:digit:]]{6,10}/); x=substr($1, RSTART, RLENGTH)}; x ~ /[[:lower:]]/ && x ~ /[[:digit:]]/' test_strings 

Dadas sus cadenas de testing, esto produce:

 aasd4567 9f7g6s5df 0hjksdf73 9f7g6s5dfasdf 12345/1234asd Wordswords12 W0rdsW4rds12312312