Remplacer mot dans un fichier txt avec bash

Résolu
alex -  
alexis38460 Messages postés 94 Statut Membre -
Bonjour à tous.
J'ai un fichier XML, un peu comme un fichier txt.
A l'interieur, j'ai plein de ligne, exemple: <p>blabla</p>.
Je voudrais modifier une phrase par ligne de commande bash.
Le texte resemble a sa :
http://monsite.alex/photo/fi.png
par
http://site.alex/photo/fi.png
En gros, la commande, changera que : http://monsite.alex en http://site.alex sans touché a se que il y a après (/photo/fi.png)


Merci d'avance pour votre aide.
A voir également:

11 réponses

alexis38460 Messages postés 94 Statut Membre 1
 
Pour se qui veulent la commande, c'est :
sed -i.bak 's/mot-a-remplacer/remplacer-par/g' votre_fichier
1
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,

jp@MDK:~/tmpfs ssh$ cat plop
Bonjour à tous.
J'ai un fichier XML, un peu comme un fichier txt.
A l'interieur, j'ai plein de ligne, exemple: <p>blabla</p>.
Je voudrais modifier une phrase par ligne de commande bash.
Le texte resemble a sa :
http://monsite.alex/photo/fi.png
par
http://site.alex/photo/fi.png
En gros, la commande, changera que : http://monsite.alex en http://site.alex sans touché a se que il y a après (/photo/fi.png)


Merci d'avance pour votre aide.

jp@MDK:~/tmpfs ssh$ sed -i.bak 's/mon\(site.alex\)/\1/' plop

jp@MDK:~/tmpfs ssh$ cat plop
Bonjour à tous.
J'ai un fichier XML, un peu comme un fichier txt.
A l'interieur, j'ai plein de ligne, exemple: <p>blabla</p>.
Je voudrais modifier une phrase par ligne de commande bash.
Le texte resemble a sa :
http://site.alex/photo/fi.png
par
http://site.alex/photo/fi.png
En gros, la commande, changera que : http://site.alex en http://site.alex sans touché a se que il y a après (/photo/fi.png)


Merci d'avance pour votre aide.

jp@MDK:~/tmpfs ssh$

:-))
0
alex
 
Merci pour ton aide, mais je me suis mal expliqué. Désolé.
Je voudrais changer dans un fichier txt, tout les mot :
http://linux.hebergeur.org/word/
en
http://linux.site.com

Merci pour ton aide.
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Re-

Essaye ça :

sed 's#\(http://\)\([^/]*\..\{2,3\}/\)\([^ ]*\)#\1mon.nouveau.site/\3#g'

Mais bon sans exemples précis, ce n'est pas évident...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
alex
 
En gros, c'est sa que je veux changer:
http://linux.hebergeur.org
en
http://linux.site.com
0
alex
 
Bonjour.
Je voudrais en gros, changer:
http://linux.hebergeur.org
en:
http://linux.site.com

Merci d'avance.
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Dans ton 1er message tu faisais allusion au fait qu'il puisse y avoir des choses à conserver après le ".org", ce n'est plus le cas ?

Toutes tes adresses commencent par http://linux. ?
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Si ça commence par http://linux. :

 sed 's#\(http://linux\.\)[^ ]*#\1mon_nouveau_site\.com#g'

Devrait le faire ;-))
0
alexs
 
Re bonjour. Pour aller plus vite, je voudrais:
http://eeepc-linux.lescigales.org
devient
http://eeepc-linux.site.com

En gros, .lescigales.org devient .site.com

Merci
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
 sed 's#\(http://eeepc-linux\.\)[^ ]*#\1site\.com#g'

0
alexs
 
Dans ta commande, tu dit pas que il modifier lesigales.org par site.com, ni dans quelle fichier.
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Le fichier il suffit de le rajouter après la commande.

Si ce n'est que substituer "lesigales.org par site.com", un simple :

sed -i.bak 's/lesigales.org/site.com/g' fichier

Suffit amplement. Le "-i.bak" permet de modifier le fichier d'origine et d'en faire une copie au-préalable avec une extension .bak.
0
alexis38460 Messages postés 94 Statut Membre 1
 
Merci, sa a marché, pas au debut, mais la 2eme fois, sa a marché.

Encore merci pour ton aide.
0