Könnten Sie bitte folgendes ausprobieren, geschrieben und getestet mit gezeigten Beispielen nur 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=""
}'
Einzelne Befehlszeile:
grep -E '/elv/[A-Z]+' infile | sed -E 's:.*/elv/([A-Z_]+).*:\1:'
wenn sort
wird benötigt/erlaubt,
grep -E '/elv/[A-Z]+' infile | sed -E 's:.*/elv/([A-Z_]+).*:\1:' | sort -u
Sie müssen ein Regex-Muster in Ihr awk-Skript einfügen, um $5:
zu vergleichenLösung:
grep "/elv" ~/spacestation.txt | awk -F/ '$5 ~ /^[A-Z_]+/ {print $5}' | sort -u
- '~' ist für den Vergleich von $5 mit Regex-Musterabgleich
- '^' ist das erste Zeichen des Wortes
- '[A-Z_]' sucht nach allen Feststellzeichen einschließlich _
- '+' ist dafür, mit dem Abgleichen von [A-Z_] fortzufahren, wenn er ein oder mehrere solche Zeichen findet