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 :

AWK: extraire des ligne en se basant sur le contenu d'une place de colonnes.


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 40
    Points : 30
    Points
    30
    Par défaut AWK: extraire des ligne en se basant sur le contenu d'une place de colonnes.
    Bonjour,


    SVP, je veux extraire des ligne qui contiennent un caractère d'espace depuis la colone 83 + 16 colonnes et ignorer toutes les lignes qui contiennent un autre caractère/chaine/entier dans cette plage de colonnes.

    voilà mon fichier file.txt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    7653903747235209876401            HGFDKJKK      98765435475237        caJHGFDSQ200                00779999        654321000704          2014100812204898764513165432
    7653903747235209854311                 KJH      98765435475280             lkjUIHJ100808442700001298765432        654321009999          2014100812204898764513165432
    7653903747235209854311                 BBB      98765435475280             lkjUIHJ100808442700001298765432        654321009999          2014100812204898764513165432
    7653903747235209876401            GHJUYTHH      98765435475237        caJHGFDSQ200                00779999        654321000704          2014100812204898764513165432
    voilà mon code je veux ajouter cette condition à ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        #!/bin/sh
        var='^20141008'
        awk -v var=$var '$1~/[01]1$/ && $7 ~ var'  file.txt
    merci

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 392
    Points
    19 392
    Par défaut
    Bonjour,

    la fonction substr() devrait t'aider.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 286
    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 286
    Points : 12 742
    Points
    12 742
    Par défaut
    Bonjour,
    je ne vois pas l’intérêt de substr, ceci devrait suffire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     #!/bin/sh
    var='^20141008'
    awk -v var=$var '/^.{82} {16}/ && $1 ~ /[01]1$/ && $7 ~ var'  file.txt
    Cordialement.

Discussions similaires

  1. Extraire des lignes d'un fichier ini en Batch
    Par yoyo612 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 21/07/2008, 20h25
  2. Extraire des lignes d'un fichier
    Par Scal-tn dans le forum Administration système
    Réponses: 3
    Dernier message: 20/04/2008, 13h39
  3. [VBA-E] Extraire des lignes depuis plusieurs classeurs fermés
    Par stoof dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/05/2007, 12h26
  4. Extraire des lignes d'un fichier en commande bash
    Par newnew dans le forum Linux
    Réponses: 3
    Dernier message: 27/07/2004, 16h22
  5. Extraire des lignes precises d'un fichier
    Par keke33 dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 03/06/2004, 10h52

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