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 :

Expression réguliere sed suppression début de fichier


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Par défaut Expression réguliere sed suppression début de fichier
    Bonjour,

    J'ai un fichier de log comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ^@^@^@^@^@^@^M^F^L^@^@^@^@2012-03
    2012-03
    2012-03
    2012-03
    Mon objectif est de supprimer toues les caractères de début de fichier jusqu'à 2012-03 le premier qui apparaît.

    Est-ce possible avec sed ? Je ne suis pas très fort en expression régulière.

    J'ai essayé tout de même ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -e "/^2012-03/d" myfile > testfile
    Mais malheureusement cela fait l'inverse de ce que je veux Cela supprime tout sauf les premiers caractère de la premier ligne.

    D'avance merci de votre aide

  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,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/^[^[:digit:]]*//'
    Sous réserve que toutes tes lignes de logs commencent bien par un chiffre (date)

  3. #3
    Membre très actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Par défaut
    Ah oui cela marcherait presque !

    J'ai oublié de préciser que la première ligne est de cette forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ^@^@^@^@^@^@^M^F^L^@^@^@^@12424:=;^@^@^@^@^@^@2012-03
    Donc ta solution me supprime bien les caractères avant mais pas après... Pour le moment. Il faudrait supprimer tous les caractères avant 2012 sur la première ligne en réalité.

    Désolé de te mettre à contribution mais j'ai encore du boulot pour comprendre les regex.

    Sinon oui toutes les lignes sont censé commencer par des chiffres. Tu peux encore me donner un petit coup de pouce pour les caractères étranges après la première date ?

    D'avance merci.

  4. #4
    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
    Est-il possible d'avoir un exemple concret de ton fichier ?
    Parce qu'autant avoir tout d'un coup que de faire par bribes

  5. #5
    Membre très actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Par défaut
    Ouep désolé je te met que les 5 premiers lignes car après c'est identique:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ^@^@^@^@^@^@^M^F^L^@^@^@^@12424:=;^@^@^@^@^@^@2012-03 12:00 c45.hp45
    2012-03 12:00 c45.hp45
    2012-03 12:00 c45.hp45
    2012-03 12:00 c45.hp45
    2012-03 12:00 c45.hp45
    2012-03 12:00 c45.hp45
    Il faudrait supprimer ces caractères étranges et aussi le 12424:=; qui traîne. Pour faire un traitement sur les données du fichier j'ai besoin d'avoir un fichier de log propre. Je ne sais pas à quoi sont dû les caractères comme ceci : ^@^@^M^F^L

    Ma foi. la solution que je vois c'est de supprimer que le début du fichier jusqu'à 2012-03.

    Je te remercie pour ton aide.

  6. #6
    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
    Essaye ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/^.*;[^[:digit:]]*//'

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

Discussions similaires

  1. Expression réguliere et nom de fichier
    Par delilou dans le forum Général Java
    Réponses: 4
    Dernier message: 24/03/2011, 09h39
  2. sed et écrire au début de fichier
    Par tarekphp dans le forum Unix
    Réponses: 2
    Dernier message: 05/01/2009, 15h36
  3. Réponses: 8
    Dernier message: 14/11/2003, 22h51
  4. Réponses: 2
    Dernier message: 11/08/2003, 13h43
  5. [LG]suppression dans un fichier
    Par cedrick essale dans le forum Langage
    Réponses: 5
    Dernier message: 10/08/2003, 15h22

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