Potresti per favore provare a seguire, scritto e testato con esempi mostrati solo in 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=""
}'
Singola riga di comando:
grep -E '/elv/[A-Z]+' infile | sed -E 's:.*/elv/([A-Z_]+).*:\1:'
se sort
è necessario/consentito,
grep -E '/elv/[A-Z]+' infile | sed -E 's:.*/elv/([A-Z_]+).*:\1:' | sort -u
Devi inserire il pattern regex nel tuo script awk per confrontare $5:
Soluzione:
grep "/elv" ~/spacestation.txt | awk -F/ '$5 ~ /^[A-Z_]+/ {print $5}' | sort -u
- '~' è per confrontare $5 con la corrispondenza del modello regex
- '^' è il primo carattere della parola
- '[A-Z_]' cercherà tutti i caratteri di maiuscolo compreso _
- '+' serve per continuare con la corrispondenza [A-Z_] se trova uno o più caratteri come questo