Pourriez-vous s'il vous plaît essayer de suivre, d'écrire et de tester avec des exemples affichés uniquement dans 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=""
}'
Ligne de commande unique :
grep -E '/elv/[A-Z]+' infile | sed -E 's:.*/elv/([A-Z_]+).*:\1:'
si sort
est nécessaire/autorisé,
grep -E '/elv/[A-Z]+' infile | sed -E 's:.*/elv/([A-Z_]+).*:\1:' | sort -u
Vous devez mettre un motif regex dans votre script awk pour comparer 5 $ :
Solution :
grep "/elv" ~/spacestation.txt | awk -F/ '$5 ~ /^[A-Z_]+/ {print $5}' | sort -u
- '~' est pour comparer 5 $ avec la correspondance de modèle regex
- '^' est le premier caractère du mot
- '[A-Z_]' recherchera tous les caractères majuscules, y compris avec _
- '+' est pour continuer à faire correspondre [A-Z_] s'il trouve un ou plusieurs caractères comme celui-ci