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 :

suppression des lignes d'un fichier en shell


Sujet :

Linux

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 78
    Points : 40
    Points
    40
    Par défaut suppression des lignes d'un fichier en shell
    salut

    1- j'ai ce fichier exp.txt qui contient les lignes qui suivent:

    www serveur_web type_enregistrement adresse_ip
    dns serveur_dns type_enregistrement adresse_ip
    mail serveur_messagerie type_enregistrement adresse_ip

    je veux par exemple supprimer la ligne commençant par dns??

    puis je le faire?


    2- et j'ai un autre fichier zone.txt de cette forme:

    zone "exp1.dz" in {
    type master;
    file "exp1.zone";
    };

    zone "exp2.dz" in {
    type master;
    file "exp2.zone";
    };

    ce que je veux c'est de supprimer une ensemble de lignes selon le nom du domaine introduit,par exemple je veux supprimer la zone exp2.dz, et aprés suppression j'aurai ce résultat:

    le contenu de zone.txt est:

    zone "exp1.dz" in {
    type master;
    file "exp1.zone";
    };



    est il possible de le réaliser?,

    merci d'avance

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 129
    Points
    28 129
    Par défaut
    Bonjour,

    grep est l'outil qu'il vous faut pour le premier cas

    Supprimer toutes les lignes commencant par dns :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -v "^dns" mon_fichier.txt > mon_nouveau_fichier.txt
    Supprimer plusieurs lignes d'un coup n'est pas possible avec grep. Il faut utiliser sed ou awk, mais je ne connais plus la syntaxe exacte.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 46
    Points : 37
    Points
    37
    Par défaut
    Bjr,
    Avec sed :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i '/^dns/d' fichier.txt
    pour l'autre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i '/exp2.dz/,/};/d' Data.txt
    Enlever l'option -i pour les tests

  4. #4
    Membre confirmé Avatar de KindPlayer
    Profil pro
    Inscrit en
    Février 2007
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 471
    Points : 477
    Points
    477
    Par défaut
    J'aurais aussi pensé à cette solution, mais il faut vérifier que sed n'est pas greedy peut-être ?

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 585
    Points : 19 462
    Points
    19 462
    Par défaut
    allez, pour le fun (mais ça peut être risqué) :
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -si.bak '/^dns/d;/exp2.dz/,/^$/d' {exp,zone}.txt

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/04/2010, 11h34
  2. Extraire des lignes d'un fichier (shell unix)
    Par guicecal dans le forum Unix
    Réponses: 2
    Dernier message: 22/01/2010, 13h49
  3. Script de suppression des lignes d'un fichier Excel
    Par ninsekh dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 09/10/2008, 12h44
  4. Shell pour supprimer des lignes d'un fichier
    Par nelsa dans le forum Autres langages
    Réponses: 2
    Dernier message: 20/09/2004, 12h26

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