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 :

sed dans une boucle while


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Août 2020
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2020
    Messages : 160
    Par défaut sed dans une boucle while
    Bonjour,

    Je souhaite supprimer toutes les lignes du fichier my_file.txt qui se trouvent dans le fichier TOTO.txt.

    fichier my_file.txt :
    fichier TOTO.txt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    tete
    tata
    tyty
    tuitui
    titi
    Unitairement, si veut supprimer la ligne contenant l'unique mot tata dans TOTO.txt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i '/tata/d' TOTO.txt
    Donne un fichier TOTO.txt:
    Cela fonctionne bien................. mais dès qu'on l'intègre dans une boucle while ça ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while read Line; do sed -i '/$Line/d' TOTO.txt; done < my_file.txt
    Cela devrait donner après substitution un fichier TOTO.txt:
    … mais marche pas!

    Avez-vous une idée du pourquoi du comment ?

  2. #2
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Août 2020
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2020
    Messages : 160
    Par défaut
    Pour ceux qui auraient le même besoin, j'ai tenté les doubles quotes dans le sed de la boucle while et ca l'a fait !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while read Line; do sed -i "/$Line/d" TOTO.txt; done < my_file.txt

  3. #3
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -vf my_file.txt TOTO.txt
    Si on ne veut pas que les chaînes soient comprises comme des expressions régulières, on ajoute l'option "-F".

    Ton code n'a pas marché car la différence entre "les double quotes" et 'les simple quotes' est que les 'simple quotes' empêchent l'interprétation.

  4. #4
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Août 2020
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2020
    Messages : 160
    Par défaut
    Oui merci beaucoup ... je le fais souvent avoir avec les doubles quotes 😁

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Darwin Kernel Version 10.8.0] sed dans une boucle while
    Par yann4dev dans le forum Shell et commandes POSIX
    Réponses: 2
    Dernier message: 06/12/2012, 23h04
  2. Problème de SCANF dans une boucle WHILE
    Par FidoDido® dans le forum C
    Réponses: 4
    Dernier message: 30/12/2005, 17h42
  3. [Conception] Problème de test dans une boucle while
    Par Cyrius dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/11/2005, 18h07
  4. Réponses: 6
    Dernier message: 17/06/2005, 16h51
  5. [MFC] Dialog dans une boucle while
    Par oxor3 dans le forum MFC
    Réponses: 5
    Dernier message: 23/04/2004, 22h51

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