Extraire le premier mot après le motif qui inclut “

J'ai un problème quand j'essaie d'extraire le premier mot après grep correspond à mon model.

Laissez-moi vous montrer un exemple:

 cat test.txt [profile dev] xxx xxx [profile prod] xxx xxx 

maintenant je veux extraire le mot après «profil» et éventuellement l'affecter dans une variable

J'ai essayé avec grep et awk mais il semble que je ne puisse extraire que le mot

grep -oP '(?<=profile\s/)\w+' /test.txt ne renvoie rien aussi avec awk :

 awk '/^profile / {print $1}' /text.txt 

peut-être c'est à cause des parenthèses ou je ne sais pas, pouvez-vous m'aider avec une suggestion?

Votre patron Awk échoue parce que le mot "profil" ne démarre pas l'logging, [profile fait …

 awk '/^\[profile/ {gsub(/]/,""); print $2}' test.txt dev prod 

Une autre approche serait de charger un tableau, en utilisant split :

 awk -F'[][]' '/profile/ {p=split($2,profiles," "); print profiles[2]}' test.txt dev prod