Remplacer mot dans un fichier txt avec bash

Résolu
alex -  
alexis38460 Messages postés 44 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. alexis38460 Messages postés 44 Date d'inscription   Statut Membre Dernière intervention   1
     
    Pour se qui veulent la commande, c'est :
    sed -i.bak 's/mot-a-remplacer/remplacer-par/g' votre_fichier
    1
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
  3. 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
  4. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

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

    Merci d'avance.
    0
  8. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
  9. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Si ça commence par http://linux. :

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

    Devrait le faire ;-))
    0
  10. 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
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
       sed 's#\(http://eeepc-linux\.\)[^ ]*#\1site\.com#g'

      0
  11. alexs
     
    Dans ta commande, tu dit pas que il modifier lesigales.org par site.com, ni dans quelle fichier.
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      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
  12. alexis38460 Messages postés 44 Date d'inscription   Statut Membre Dernière intervention   1
     
    Merci, sa a marché, pas au debut, mais la 2eme fois, sa a marché.

    Encore merci pour ton aide.
    0