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 :

Besoin d'aide sur la commande sed


Sujet :

Shell et commandes GNU

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et applicatif
    Inscrit en
    Novembre 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et applicatif
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2004
    Messages : 27
    Points : 21
    Points
    21
    Par défaut Besoin d'aide sur la commande sed
    Bonjour,

    J'aurais besoin d'un petit coup de pouce avec la commande sed, avec laquelle je ne suis pas du tout familier...

    J'ai deux fichiers texte, un avec une liste de machines, à la façon d'un fichier hosts, et l'autre avec une liste d'IP.

    Je souhaiterais en fait supprimer les lignes du fichiers contenant toutes les machines qui correspondent aux IP présentes dans mon autre fichier où il y a seulement les IP.
    Je pensais faire ça avec un sed mais vu que je n'ai jamais utilisé cette commande, je suis un peu largué sur sa syntaxe...

    mon fichier contenant toutes les machines s'appelle "bornes"
    mon fichier contenant les IP à supprimer s'appelle "ping_lost_bornes"

    J'ai fait ça comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for i in $(cat ping_lost_bornes)
    do 
    sed "/$i/d" bornes
    done
    Ça doit sembler évident pour beaucoup mais vraiment, cette commande sed que je sais très puissante me fait exploser le crâne...

    Merci d'avance à ceux qui voudront bien m'aider

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 099
    Points : 28 390
    Points
    28 390
    Par défaut
    Peux-tu nous donner quelques lignes de chacun des fichiers, ainsi que le résultat attendu à partir de ces lignes ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et applicatif
    Inscrit en
    Novembre 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et applicatif
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2004
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    le fichier bornes contient quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    10.59.82.228    l88      T4DENAIN
    10.1.49.244     y6c      T4BELLEGARDE
    10.59.84.61     l83      T4VALENCIENNES MAUBEUGEPAF
    10.92.114.200   p7a      T4CHATENAY     MALABRY
    10.92.21.200    p7b      T4NANTERRE     92SDIJ
    10.204.51.244   p7c      T4PARIS        04SARIJ
    10.80.49.210    l6c      t4Abbeville
    et le fichier ping_lost_bornes quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    10.69.17.252
    10.62.50.36
    10.44.17.230
    10.59.148.60
    10.97.161.242
    le but étant de supprimer dans le fichier "bornes" les lignes contenant les adresses contenues dans le fichier "ping_lost_bornes"

  4. #4
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Salut,

    T'aurais pu fournir un fichier "ping_lost" contenant au moins une adresse faisant partie du fichier bornes

    J'en ai rajouté 2 histoire que le test marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $ cat bornes 
    10.59.82.228    l88      T4DENAIN
    10.1.49.244     y6c      T4BELLEGARDE
    10.59.84.61     l83      T4VALENCIENNES MAUBEUGEPAF
    10.92.114.200   p7a      T4CHATENAY     MALABRY
    10.92.21.200    p7b      T4NANTERRE     92SDIJ
    10.204.51.244   p7c      T4PARIS        04SARIJ
    10.80.49.210    l6c      t4Abbeville
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $ cat ping_lost 
    10.69.17.252
    10.62.50.36
    10.44.17.230
    10.59.84.61
    10.59.148.60
    10.97.161.242
    10.59.82.228
    La syntaxe avec "fgrep" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ fgrep -v -f ping_lost bornes 
    10.1.49.244     y6c      T4BELLEGARDE
    10.92.114.200   p7a      T4CHATENAY     MALABRY
    10.92.21.200    p7b      T4NANTERRE     92SDIJ
    10.204.51.244   p7c      T4PARIS        04SARIJ
    10.80.49.210    l6c      t4Abbeville

  5. #5
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et applicatif
    Inscrit en
    Novembre 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et applicatif
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2004
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    Impeccable !
    Super, merci beaucoup, c'est exactement ce que je voulais faire (dommage pour le sed, j'apprendrai une autre fois à l'utiliser :p )

    Bonne soirée

  6. #6
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Citation Envoyé par veis Voir le message
    Impeccable !
    Super, merci beaucoup, c'est exactement ce que je voulais faire (dommage pour le sed, j'apprendrai une autre fois à l'utiliser :p )

    Bonne soirée
    Avec sed ça aurait donné ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $ while read line; do sed -i "/${line}/d" bornes ; done < ping_lost 
     
    $ cat bornes 
    10.1.49.244     y6c      T4BELLEGARDE
    10.92.114.200   p7a      T4CHATENAY     MALABRY
    10.92.21.200    p7b      T4NANTERRE     92SDIJ
    10.204.51.244   p7c      T4PARIS        04SARIJ
    10.80.49.210    l6c      t4Abbeville

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 04/05/2012, 11h58
  2. SQLite besoin d'aide sur les commandes
    Par PyNub dans le forum Général Python
    Réponses: 2
    Dernier message: 10/10/2011, 21h18
  3. Besoin d'aide sur une commande
    Par debutant75013 dans le forum Linux
    Réponses: 8
    Dernier message: 23/02/2010, 19h15
  4. Réponses: 3
    Dernier message: 23/07/2007, 10h51
  5. Aide sur les commandes sed et awk
    Par elkhy dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 20/06/2006, 08h22

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