Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

#1 Le 13/06/2010, à 19:37

cedrix57

[Résolu][sed] Inverser 2 mots

Bonjour,

J'ai un fichier avec plein de fois un mot1 et un mot2, et j'aimerai bien les inverser.
par exemple :

ertt mot1 rerez mot2
fds mot1 fd mot1
mot2

donne

ertt mot2 rerez mot1
fds mot2 fd mot2
mot1

Quelqu'un sait comme je pourrait m'y prendre avec sed ?

Merci d'avance

Dernière modification par cedrix57 (Le 15/06/2010, à 19:59)

Hors ligne

#2 Le 13/06/2010, à 19:50

Watael

Re : [Résolu][sed] Inverser 2 mots

il faut utiliser un mot3 intermédiaire :

echo "ertt mot1 rerez mot2
fds mot1 fd mot1
mot2" | sed 's/mot2/mot3/g; s/mot1/mot2/g; s/mot3/mot1/g'
ertt mot2 rerez mot1
fds mot2 fd mot2
mot1

eval, c'est mal.

Hors ligne

#3 Le 14/06/2010, à 09:20

nesthib

Re : [Résolu][sed] Inverser 2 mots

il va de soi que mot3 doit être suffisamment unique pour ne pas exister dans le texte initial (du genre utiliser une balise : <###>)


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#4 Le 14/06/2010, à 09:46

Totor

Re : [Résolu][sed] Inverser 2 mots

Pas besoin de mot3 :

sed -r 's/(.*)mot1(.*)mot2(.*)/\1mot2\2mot1\3/' <fichier>

-- Lucid Lynx --

Hors ligne

#5 Le 14/06/2010, à 10:32

Watael

Re : [Résolu][sed] Inverser 2 mots

oui, Totor, mais il ne s'agit pas que de ça sad
cedrix57 souhaite changer chaque instance de mot1 par mot2, et inversement:

$ b=B a=A
$ echo "$b $a"
B A
$ ba=$a a=$b b=$ba
$ echo "$a$b"
BA

wink


eval, c'est mal.

Hors ligne

#6 Le 14/06/2010, à 10:54

Totor

Re : [Résolu][sed] Inverser 2 mots

Arg, je n'avais pas vu cet aspect. je pensais qu'il souhait inverser leur position.  sad
Cela dit, cela reste toujours possible de le faire sans mot3 mais il y a un risque de perte blanc et/ou de formatage.


-- Lucid Lynx --

Hors ligne

#7 Le 14/06/2010, à 22:41

cedrix57

Re : [Résolu][sed] Inverser 2 mots

Je pense que je vais choisir la solution avec mot3, en mettant un mot suffisamment unique pour que cela puisse marcher dans plusieurs cas.

Merci pour vos réponses.

Hors ligne

#8 Le 15/06/2010, à 01:39

Hizoka

Re : [Résolu][sed] Inverser 2 mots

C'est en effet ce que j'aurais fait également, le mot3, utilise-en un qui n'existe pas (XXXcedrix57XXX) afin d'être sûr qu'il soit unique.

pense à ajouter un résolu dans ton titre.

Dernière modification par Hizoka (Le 15/06/2010, à 01:39)

Hors ligne

Haut de page ↑