Remplacer mot dans un fichier txt avec bash

Résolu/Fermé
alex - 2 nov. 2009 à 11:29
alexis38460
Messages postés
40
Date d'inscription
mardi 10 mars 2009
Statut
Membre
Dernière intervention
5 juin 2013
- 4 nov. 2009 à 11:42
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.

11 réponses

alexis38460
Messages postés
40
Date d'inscription
mardi 10 mars 2009
Statut
Membre
Dernière intervention
5 juin 2013
1
4 nov. 2009 à 11:42
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
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
2 nov. 2009 à 11:38
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
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
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
3 nov. 2009 à 10:14
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
En gros, c'est sa que je veux changer:
http://linux.hebergeur.org
en
http://linux.site.com
0
Bonjour.
Je voudrais en gros, changer:
http://linux.hebergeur.org
en:
http://linux.site.com

Merci d'avance.
0
jipicy
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
3 nov. 2009 à 12:01
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
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
3 nov. 2009 à 12:12
Si ça commence par http://linux. :

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

Devrait le faire ;-))
0
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
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
3 nov. 2009 à 12:33
 sed 's#\(http://eeepc-linux\.\)[^ ]*#\1site\.com#g'

0
Dans ta commande, tu dit pas que il modifier lesigales.org par site.com, ni dans quelle fichier.
0
jipicy
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
3 nov. 2009 à 13:24
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
40
Date d'inscription
mardi 10 mars 2009
Statut
Membre
Dernière intervention
5 juin 2013
1
3 nov. 2009 à 13:44
Merci, sa a marché, pas au debut, mais la 2eme fois, sa a marché.

Encore merci pour ton aide.
0