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

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2005
    Messages : 108
    Points : 59
    Points
    59
    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 expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    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 : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    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
    Points : 5 915
    Points
    5 915
    Par défaut
    sed -i -e '/MONMOT/d' fichier

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 669
    Points : 977
    Points
    977
    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...

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