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 supprimer la ligne du dessus


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2012
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mars 2012
    Messages : 73
    Par défaut sed supprimer la ligne du dessus
    Bonjour à tous,

    grâce à sed je supprime un motif présent plusieurs fois dans mon fichier, cependant j'aimerai également supprimer la ligne située au dessus de ce motif, est-ce possible en utilisant sed ?

    Merci à vous

  2. #2
    Expert confirmé

    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
    Par défaut
    Salut,

    Oui c'est possible

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $ cat plop
    ligne 1
    blablabla
    ligne 2
    bla blu bla
    ligne 3
    blablabla
    ligne 4
    bla bla bla
    ligne 5
    blu bla bla
    ligne 6
    blablabla
    Les lignes contenant "blu" seront supprimées ainsi que la ligne précédente.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ sed 'N;/blu/d' plop 
    ligne 1
    blablabla
    ligne 3
    blablabla
    ligne 4
    bla bla bla
    ligne 6
    blablabla
     
    $
    Le principe c'est de charger une ligne dans la mémoire principale (fonction par défaut de sed), puis d'y ajouter la ligne suivante avec la commande "N" (next), on vérifie la présence du motif et si il s'y trouve, on supprime (d) les 2 lignes présentes dans la mémoire principale.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2012
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mars 2012
    Messages : 73
    Par défaut
    Bonjour,

    merci pour votre réponse ça fonctionne (seul la première valeur ne marche pas je ne sais pas vraiment pourquoi mais bon il m'a suffit d'une correction manuelle).

    Bonne journée

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

Discussions similaires

  1. [sed] Supprimer plusieurs lignes
    Par arnaudperfect dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 02/09/2010, 14h06
  2. [sed] supprimer plusieurs chaines similaires sur la même ligne
    Par laloupiote dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 02/03/2010, 07h43
  3. Réponses: 3
    Dernier message: 25/12/2009, 09h29
  4. sed : supprimer saut de ligne
    Par michaeljeru dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 12/09/2008, 16h52
  5. sed et boucle pour pour supprimer des lignes
    Par edouardj dans le forum Linux
    Réponses: 15
    Dernier message: 09/11/2007, 12h39

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