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 des lignes d'un fichier selon la valeur d'un substr d'une colonne


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2012
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 16
    Par défaut Supprimer des lignes d'un fichier selon la valeur d'un substr d'une colonne
    j'ai aussi une autre question dans le même contexte: Je voudrais supprimer des lignes selon la valeur de la première colonne,

    par exemple:

    read jd (jour début) supposon que $jd=15
    read jf (jour fin) // // $jf=18

    on a le fichier suivant en INPUT:

    14/01/2012;a;b;c;d
    15/01/2012;a;b;c;d
    16/01/2012;a;b;c;d
    17/01/2012;a;b;c;d
    18/01/2012;a;b;c;d
    19/01/2012;a;b;c;d
    20//01/2012;a;b;c;d

    je voudrais avoir en OUTPUT:

    15/01/2012;a;b;c;d
    16/01/2012;a;b;c;d
    17/01/2012;a;b;c;d
    18/01/2012;a;b;c;d

    toutes les autres lignes seront supprimées. Merci de me répondre, je vous serai reconnaissant

  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
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    $ cat plop 
    14/01/2012;a;b;c;d
    15/01/2012;a;b;c;d
    16/01/2012;a;b;c;d
    17/01/2012;a;b;c;d
    18/01/2012;a;b;c;d
    19/01/2012;a;b;c;d
    20//01/2012;a;b;c;d
     
    $ sed -n '/^15/,/^18/p' plop 
    15/01/2012;a;b;c;d
    16/01/2012;a;b;c;d
    17/01/2012;a;b;c;d
    18/01/2012;a;b;c;d
     
    $

  3. #3
    Membre averti
    Inscrit en
    Janvier 2012
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 16
    Par défaut
    Citation Envoyé par zipe31 Voir le message
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    $ cat plop 
    14/01/2012;a;b;c;d
    15/01/2012;a;b;c;d
    16/01/2012;a;b;c;d
    17/01/2012;a;b;c;d
    18/01/2012;a;b;c;d
    19/01/2012;a;b;c;d
    20//01/2012;a;b;c;d
     
    $ sed -n '/^15/,/^18/p' plop 
    15/01/2012;a;b;c;d
    16/01/2012;a;b;c;d
    17/01/2012;a;b;c;d
    18/01/2012;a;b;c;d
     
    $
    Merci bcp mais j'ai un petit souci, la date est affichée en anglais 2012-01-15
    le nombre en question se trouve en dernière position au lieu d'être au début de la ligne...Merci de m'aider!!!

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    $ cat plop
    2012-01-14;a;b;c;d
    2012-01-15;a;b;c;d
    2012-01-16;a;b;c;d
    2012-01-17;a;b;c;d
    2012-01-18;a;b;c;d
    2012-01-19;a;b;c;d
    2012-01-20;a;b;c;d
     
    $ sed -n '/15;/,/18;/p' plop 
    2012-01-15;a;b;c;d
    2012-01-16;a;b;c;d
    2012-01-17;a;b;c;d
    2012-01-18;a;b;c;d
     
    $

  5. #5
    Membre averti
    Inscrit en
    Janvier 2012
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 16
    Par défaut
    Citation Envoyé par zipe31 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    $ cat plop
    2012-01-14;a;b;c;d
    2012-01-15;a;b;c;d
    2012-01-16;a;b;c;d
    2012-01-17;a;b;c;d
    2012-01-18;a;b;c;d
    2012-01-19;a;b;c;d
    2012-01-20;a;b;c;d
     
    $ sed -n '/15;/,/18;/p' plop 
    2012-01-15;a;b;c;d
    2012-01-16;a;b;c;d
    2012-01-17;a;b;c;d
    2012-01-18;a;b;c;d
     
    $
    Merci pour cette solution mais j'ai pas exactement ";" après le jour j'ai plutôt une heure (2012-01-15 10:09:12), et les jours précisés dans le sed peuvent ne pas exister dans le fichier genre le 15 et le 18 peuvent ne pas exister dans le fichier....

  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
    Tu as le principe, à toi d'adapter en fonction de tes besoins.

    Par contre si les jours n'existent pas, ben t'auras rien en sortie

Discussions similaires

  1. Supprimer des lignes d'un fichier 1 en fonction du contenu du fichier 2
    Par Ohemeg dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 10/11/2008, 10h05
  2. Supprimer des lignes d'un fichier
    Par chreks dans le forum Fortran
    Réponses: 3
    Dernier message: 05/06/2008, 19h25
  3. problème pour supprimer des lignes d'un fichier
    Par NicoO_O dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 17/01/2008, 07h23
  4. [CSV] Ajouter et supprimer des ligne dans un fichier CSV
    Par gpsevasion dans le forum Langage
    Réponses: 3
    Dernier message: 28/02/2007, 17h00
  5. 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