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 avec SED


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2007
    Messages : 52
    Points : 35
    Points
    35
    Par défaut Probleme avec SED
    Bonjour a tous,

    j'ai un probleme dans mon script dont je n'arrive pas a trouver une solution et j'aimerais bien que vous m'aidiez

    Mon probleme est le suivant:
    je veux supprimer des lignes specifiques dans mon fichier texte. J'obtiens les numeros des lignes a partir d'une boucle, mais toujours a la fin de l'execution j'ouvre mon fichier et rien ne ce passe

    voici la partie de script

    *---- fichier=Mon_fichier.txt
    *
    * for ((i = 1; i <= $variable ; i ++))
    * do
    *
    * sed -i '$i d' "$fichier"
    *
    *---- done

    ma question d'une autre facon comment je peux recuperer mon fichier apres plusieurs modifications avec sed ?

    ex:

    fichier=$(cat Mon_fichier.txt)

    sed -i "1d" "$fichier" /pour supprimer la premiere ligne
    sed -i "2d" "$fichier" /pour supprimer la deuxieme ligne

    comment je peux recuperer Mon_fichier.txt apres modification ?

    merci d'avance.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 290
    Points : 426
    Points
    426
    Par défaut
    Bonjour,

    Plusieurs choses à dire en réponse à votre message...

    1. Cette ligne ne fait pas ce que vous voulez faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i '$i d' "$fichier"
    Je pense que vous voulez écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i "${i}d" "$fichier"
    En effet, les guillemets simple en shell ne permette pas l'interprétation de $ comme caractère spécial :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    romain@lilibox:~/test$ toto=foobar
    romain@lilibox:~/test$ echo "$toto"
    foobar
    romain@lilibox:~/test$ echo '$toto'
    $toto
    Ceci doit expliquer pourquoi vous ne retrouvez pas les modifications dans votre fichier, malgré l'option -i de sed.

    2. Lorsque vous faites un sed -i "1d" fichier, vous supprimer la première ligne du fichier. La 2e ligne devient alors votre première ligne. Aviez-vous cet état de fait à l'esprit ? Il faut être sacrément malin pour arriver au résultat atendu avec votre boucle.

    3. La commande "d" de sed à la particularité d'accepter un ensemble de lignes, ce qui est peut-être ce que vous souhaitez faire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    romain@lilibox:~/test$ cat fichier.orig
    ligne1
    ligne2
    ligne3
    ligne4
    ligne5
    ligne6
    romain@lilibox:~/test$ sed "1,3d" fichier.orig 
    ligne4
    ligne5
    ligne6
    Magique, non ?

Discussions similaires

  1. Probleme avec sed
    Par charly38620 dans le forum Applications et environnements graphiques
    Réponses: 5
    Dernier message: 30/10/2009, 10h36
  2. script shell : probleme avec sed et awk
    Par salseropom dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 05/06/2007, 11h57
  3. Probleme avec sed
    Par amira dans le forum Linux
    Réponses: 1
    Dernier message: 17/11/2006, 01h36
  4. Problème avec un sed
    Par ujoodha dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 03/10/2006, 15h21
  5. Problème avec sed
    Par melmouj dans le forum Linux
    Réponses: 2
    Dernier message: 08/08/2006, 11h38

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