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.