échanger deux mots en utilisant sed

J'essaie d'échanger deux mots dans une ligne mais ça ne marche pas. Par exemple: "Aujourd'hui est mon premier jour d'université" devrait être "mon est aujourd'hui premier jour d'université"

C'est ce que j'ai essayé:

sed 's/\([a-zA-z0-9]\)\([a-zA-z0-9]\)\([a-zA-z0-9]\)/\3\2\1/' filename.txt 

Qu'est-ce que je fais mal?

Essaye celui-là:

 sed -r 's/([a-zA-Z0-9]+) ([a-zA-Z0-9]+) ([a-zA-Z0-9]+)/\3 \2 \1/' 

Votre problème est que vous utilisez tryng pour utiliser l'expression régulière étendue sans l'option -r ou le symbole d'échappement dans la command sed.

Aussi l'expression rationnelle n'est pas entièrement correcte.

Vous spécifiez une plage incorrecte: il n'y a pas de plage Az , il y a AZ .

Vous avez également oublié des espaces et vous n'avez pas spécifié que les mots sont des caractères multiples.