¿Podría intentar seguir, escribir y probar con los ejemplos mostrados solo en GNU awk
? .
your_command | awk '
match($0,/"GET \/[a-zA-Z]+\/[^/]*/){
val=substr($0,RSTART,RLENGTH)
sub(/.*\//,"",val)
if(val!~/[a-z]/){ print val }
val=""
}'
Línea de comando única:
grep -E '/elv/[A-Z]+' infile | sed -E 's:.*/elv/([A-Z_]+).*:\1:'
si sort
es necesario/permitido,
grep -E '/elv/[A-Z]+' infile | sed -E 's:.*/elv/([A-Z_]+).*:\1:' | sort -u
Debe poner un patrón de expresiones regulares en su secuencia de comandos awk para comparar $5:
Solución:
grep "/elv" ~/spacestation.txt | awk -F/ '$5 ~ /^[A-Z_]+/ {print $5}' | sort -u
- '~' es para comparar $5 con la coincidencia de patrones de expresiones regulares
- '^' es el primer carácter de la palabra
- '[A-Z_]' buscará todos los caracteres de bloqueo de mayúsculas, incluso con _
- '+' es para continuar haciendo coincidir [A-Z_] si encuentra uno o más caracteres como este