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 :

Supprimer les premières lignes d'un fichier avec sed


Sujet :

Shell et commandes GNU

  1. #1
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut Supprimer les premières lignes d'un fichier avec sed
    Bonjour,

    Je souhaite couper en 3 (ou ne garder que la seconde partie) un fichier log ressemblant à ceci :
    id=firewall time="2013-09-05 05:29:34" fw="CLIENT" tz=+0200 msg="blabla"
    id=firewall time="2013-09-05 06:29:34" fw="CLIENT" tz=+0200 msg="blabla"
    id=firewall time="2013-09-05 07:29:34" fw="CLIENT" tz=+0200 msg="blabla"
    id=firewall time="2013-09-05 08:29:34" fw="CLIENT" tz=+0200 msg="blabla"
    id=firewall time="2013-09-06 05:29:34" fw="CLIENT" tz=+0200 msg="blabla"
    id=firewall time="2013-09-07 05:29:34" fw="CLIENT" tz=+0200 msg="blabla"
    id=firewall time="2013-09-08 05:29:34" fw="CLIENT" tz=+0200 msg="blabla"
    id=firewall time="2013-09-09 05:29:34" fw="CLIENT" tz=+0200 msg="blabla"
    id=firewall time="2013-09-10 05:29:34" fw="CLIENT" tz=+0200 msg="blabla"
    D'après mon exemple, je veux garder toutes les lignes (au total 4) entre le 2013-09-06 et 2013-09-09.

    Sur le net, j'ai vu pas mal d'exemples comme "garder les lignes contenant une chaine de caractères" mais dans mon cas, c'est plusieurs (autant qu'il y a de jours dans l'intervalle de temps). Une autre méthode consisterai à supprimer toutes les premières lignes jusqu'à trouver la date de début puis supprimer toutes les dernières lignes après la date de fin...

    Pourriez-vous me montrer SVP ?

    Merci d'avance

  2. #2
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Bonjour

    Normalement, tu aurais deux solutions: positive-négative ou négative-positive

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sed '/2013-09-06/,/2013-09-09/!d' monfichier
     
    sed  -n '/2013-09-06/,/2013-09-09/p' monfichier
    Mais cela s'arrête au premier 2013-09-09. Il faut donc faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -n '/2013-09-06/,/2013-09-09/{p;d};/2013-09-09/p' monfichier
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #3
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 291
    Points : 12 760
    Points
    12 760
    Par défaut
    Bonjour,

    On peut aussi adapter la regex en conséquence, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -n '/2013-09-0[6-9]/p' file
    Mais bon, cas particulier ici.
    Cordialement.

Discussions similaires

  1. Supprimer les dernières lignes d'un fichier
    Par eleana dans le forum Shell et commandes GNU
    Réponses: 16
    Dernier message: 03/11/2017, 10h55
  2. [Débutant] Supprimer la première ligne d'un fichier .txt
    Par Rymaya dans le forum C#
    Réponses: 9
    Dernier message: 21/12/2012, 01h41
  3. Réponses: 1
    Dernier message: 10/04/2009, 10h13
  4. [CSV] supprimer la première ligne d'un fichier
    Par kanabzh29 dans le forum Langage
    Réponses: 10
    Dernier message: 07/08/2008, 14h28
  5. Supprimer la première ligne d'un fichier texte
    Par n@n¤u dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 13/07/2006, 08h38

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