Rechercher : dans
Par :

Remplacer mot dans un fichier txt avec bash

Dernière réponse le 4 nov 2009 à 11:42:26 alex, le 2 nov 2009 à 11:29:54 
 Signaler ce message aux modérateurs

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.

Meilleures réponses pour « Remplacer mot dans un fichier txt avec bash » dans :
Sed - Supprimer une ou plusieurs lignes d'un fichier VoirSupprimer une (ou plusieurs) ligne(s) d'un fichier Syntaxe sed '{[/]||[/]}d' sed '{[/][,][/]d' /.../ = délimiteurs n = le numéro de ligne chaîne = la chaîne contenue dans la...
[MS-Dos] Ecrire dans un fichier texte en batch VoirPour écrire dans un fichier texte, il suffit d'utiliser une redirection ">" : echo texte_à_ecrire > fichier_de_sortie.txt Pour écrire à la fin d'un texte existant (concaténation) : echo "écriture a la fin du fichier ">>...
Sed - Substitution VoirSubstitution Substitution basique Simple Globale Ciblée Substitution conditionnée Simplee Avancée Bloc Avancéé Substitution basique Simple - 1ère occurrence (de chaque ligne) rencontrée uniquement sed 's/la/LA/' fichier.txt
Fichier TXT VoirFormat TXT Un fichier TXT est un fichier texte, c'est-à-dire un simple fichier contenant du texte au format ASCII. Pour ouvrir ou modifier un tel fichier, il suffit d'utiliser le bloc-notes ou un éditeur de texte traditionnel.

1

jipicy, le 2 nov 2009 à 11:38:19

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$

:-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

2

alex, le 3 nov 2009 à 00:01:14

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.

Répondre à alex

3

jipicy, le 3 nov 2009 à 10:14:06

Re-

Essaye ça :

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

Mais bon sans exemples précis, ce n'est pas évident...
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

4

alex, le 3 nov 2009 à 11:54:18

En gros, c'est sa que je veux changer:
http://linux.hebergeur.org
en
http://linux.site.com

Répondre à alex

5

alex, le 3 nov 2009 à 11:57:09

Bonjour.
Je voudrais en gros, changer:
http://linux.hebergeur.org
en:
http://linux.site.com

Merci d'avance.

Répondre à alex

6

jipicy, le 3 nov 2009 à 12:01:06

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. ?
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

7

jipicy, le 3 nov 2009 à 12:12:49

Si ça commence par http://linux. :

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

Devrait le faire ;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

10

alexs, le 3 nov 2009 à 12:23:20

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

Répondre à alexs

12

jipicy, le 3 nov 2009 à 12:33:37

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

$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

13

alexs, le 3 nov 2009 à 13:18:37

Dans ta commande, tu dit pas que il modifier lesigales.org par site.com, ni dans quelle fichier.

Répondre à alexs

14

jipicy, le 3 nov 2009 à 13:24:21

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.
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

18

alexis38460, le 3 nov 2009 à 13:44:15

Merci, sa a marché, pas au debut, mais la 2eme fois, sa a marché.

Encore merci pour ton aide.

Répondre à alexis38460

19

 alexis38460, le 4 nov 2009 à 11:42:26

Pour se qui veulent la commande, c'est :
sed -i.bak 's/mot-a-remplacer/remplacer-par/g' votre_fichier

Répondre à alexis38460