IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Probleme commande sed


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 4
    Par défaut Probleme commande sed
    Bonjour je tente d'effectuer, a l'aide de la commande 'sed', le remplacement d'un mot dans un fichier.

    J'ai donc, comme indiqué un peu partout, utilisé cette expression:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i -e 's/mot_a_remplacer/nouveau_mot/' file.txt
    Le soucis est que apres que la commande se soit exécutée, les mots ont bien été remplaces dans 'file.txt' mais il est apparu un 'file.txt-e', je ne vois pas ou est l'erreur....

  2. #2
    Membre éprouvé
    Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juillet 2002
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 121
    Par défaut
    Bonjour,


    Je viens de tester ta commande et je n'ai pas l'ombre d'un fichier ayant les carractéristiques de ton fichier nouvellement créé.

    Tu es sur que ce fichier ne viens pas d'une autre manipulation que tu aurais fait avant ?
    La création est systématique ?
    A chaque fois que tu executes la commande, ce fichier est recréé même apres l'avoir supprimé ?

    Au fait qu'est ce qu'il y a dans ce nouveau fichier ?

    Cordialement


    pour info 'sed version 4.2.1'

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 4
    Par défaut
    Voici l'ensemble de mes commandes et leurs resultats:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Mortalink => [~/rendu/shell/bdsh]: ls
     
    #bdsh.sh# bdsh.sh   test.txt
     
    Mortalink => [~/rendu/shell/bdsh]: cat test.txt 
     
    putain
     
     
    lol
     
     
    lol
     
    key=10
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Mortalink => [~/rendu/shell/bdsh]: sed -i -e 's/lol/lolilou/g' test.txt
     
    Mortalink => [~/rendu/shell/bdsh]: ls
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #bdsh.sh#  bdsh.sh    test.txt   test.txt-e
     
    Mortalink => [~/rendu/shell/bdsh]: cat test.txt
     
    putain
     
     
    lolilou
     
     
    lolilou
     
    key=10
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Mortalink => [~/rendu/shell/bdsh]: cat test.txt-e
     
    putain
     
     
    lol
     
     
    lol
     
    key=10
     
    Mortalink => [~/rendu/shell/bdsh]:


    ---------------------------------------------------------------------


    a noter que je suis sous freebsd 5.5

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 635
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 635
    Par défaut
    bonjour mortalink,

    je crois que tu as dû oublié de mettre un espace entre -i et -e, car en effet, si :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ ls 
    monCacatoes.txt
    $ sed -i-e 's/cacatoes/chien/' monCacatoes.txt
    $ ls 
    monCacatoes.txt monCacatoes.txt-e
    sinon, le -e n'a rien d'obligatoire, ni d'indispensable.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 4
    Par défaut
    Il y avait bien un espace entre le -i et le -e.
    J'avais déjà tenté sans le -e mais voila :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Mortalink => [~/rendu/shell/bdsh]: ls
    #bdsh.sh# bdsh.sh   test.txt
    Mortalink => [~/rendu/shell/bdsh]: sed -i 's/value/10/' test.txt
    sed: 1: "test.txt": undefined label 'est.txt'
    Mortalink => [~/rendu/shell/bdsh]: sed -i -e 's/value/10/' test.txt
    Mortalink => [~/rendu/shell/bdsh]: la
    #bdsh.sh#  .          ..         bdsh.sh    test.txt   test.txt-e
    Mortalink => [~/rendu/shell/bdsh]:

  6. #6
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 635
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 635
    Par défaut
    tu utilises GNU sed ?
    sinon, il vaudrait peut-être mieux poser la question sur le forum BSD
    ...
    ?
    parce qu'avec GNU sed :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    sed --help
    [...]
      -i[SUFFIXE], --in-place[=SUFFIXE]
                     éditer les fichiers à leur place (fait une
                     sauvegarde si l'extension est fournie)
    il faut qu'il n'y ait pas d'espace.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  7. #7
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Bonjour.

    Citation Envoyé par N_BaH Voir le message
    tu utilises GNU sed ?
    Sous FreeBSD je pense que c'est sed POSIX et pas GNU, à vérifier.

    Cordialement,
    Idriss

Discussions similaires

  1. petit probleme avec une commande sed
    Par pschiit dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 31/01/2011, 16h35
  2. Probleme Commande Sed(cygwin)
    Par Soulama dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 30/07/2009, 17h48
  3. probleme avec du shell et la commande sed
    Par cobra85 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 10/04/2009, 16h31
  4. Problème commande sed
    Par Blo0d4x3 dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 01/11/2006, 02h40
  5. Problème de SED
    Par melmouj dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 15/03/2006, 18h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo