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

Linux Discussion :

Supprime une ligne dans un fichier texte


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2005
    Messages : 108
    Par défaut Supprime une ligne dans un fichier texte
    Salut,

    je souhaite supprimer une ligne d'un fichier texte en ligne de commande.

    En gros je veux supprime la ligne (et il n'y aura qu'une unique ligne, vérification en amont) qui contient le mot
    "mon mot" du fichier "texte.txt"
    Que faire merci ...

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    grep -v mot myfile.txt > myfile_tmp.txt
    mv -f myfile_tmp.txt myfile.txt
    Attention, c'est violent : toutes les lignes contenant 'mot' seront enlevées. Mais apparemment tu as prévu un contrôle précédant.

  3. #3
    Membre Expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Par défaut
    Une autre solution consiste à utiliser perl pour faire le remplacement sur place :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    perl -i -ne "print if (not /mon_mot/)" mon_fichier.txt

  4. #4
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Par défaut
    sed -i -e '/MONMOT/d' fichier

  5. #5
    Membre émérite
    Avatar de Pouic
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 669
    Par défaut
    Dans le doute, si jamais (on ne sait pas ) il y a plusieurs occurences de ton mot dans ton fichier, la commande suivante supprime seulement la premiere ligne qui contient le mot, et ne touche pas aux autres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -ie '0,/mon_mot/{//d;}' mon_fichier
    edit :
    ca ne marche qu'avec un sed 'GNU'. Si ton sed ne l'est pas, il existe une autre solution, mais elle fait dresser les cheveux sur la tête...
    Software becomes slower faster than hardware becomes faster
    [size=1]
    http://xrenault.developpez.com

Discussions similaires

  1. Supprimer une ligne dans un fichier texte
    Par Phil.ippe dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 21/07/2007, 18h44
  2. Supprimer une ligne dans un fichier texte
    Par bsketeur dans le forum Langage
    Réponses: 26
    Dernier message: 28/06/2006, 10h36
  3. supprimer une ligne dans un fichier texte
    Par linouline dans le forum Langage
    Réponses: 5
    Dernier message: 05/06/2006, 23h02
  4. Supprimer une ligne dans un fichier texte
    Par @yoyo dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 28/03/2006, 14h19
  5. Supprimer une ligne dans un fichier text
    Par philippe13 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 14/03/2006, 16h43

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