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] Joindre un champ ligne par ligne et ses attributs


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 133
    Par défaut [awk] Joindre un champ ligne par ligne et ses attributs
    Bonjour, j'ai un fichier qui a cette allure :
    Chr1:3431..3531 AT1G01010       NA
    Chr1:3531..3631 AT1G01010       0.0714286
    Chr1:3631..3731 AT1G01010       NA
    Chr1:3731..3831 AT1G01010       0.0453217
    Chr1:3831..3931 AT1G01010       0.0662394
    Chr1:3931..4031 AT1G01010       0.0631579
    Chr1:4031..4131 AT1G01010       0.0454545
    Chr1:5399..5499 AT1G01010       0.423177
    Chr1:5499..5599 AT1G01010       0.0489694
    Chr1:5599..5699 AT1G01010       0.0277778
    Chr1:5699..5799 AT1G01010       0.0434783
    Chr1:5799..5899 AT1G01010       0.05
    Chr1:5899..5999 AT1G01010       NA
    Chr1:5999..6099 AT1G01010       0.0769231
    Chr1:5728..5828 AT1G01020       NA
    Chr1:5828..5928 AT1G01020       0.05
    Chr1:5928..6028 AT1G01020       0.0769231
    Chr1:6028..6128 AT1G01020       0.0769231
    Chr1:6128..6228 AT1G01020       0.0621867
    Chr1:6228..6328 AT1G01020       NA
    Je voudrais joindre par la colonne "$2"
    donc au final je voudrais obtenir
    AT1G01010 0.0714286 NA ... jusqu’à la dernière 0.0769231
    AT1G01020 NA ainsi de suite voici ma commande awk mais j’arrive pas a faire la liste des attributs $3:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     awk ' {n[$2]++;cmp[$3]++}END{for (x in n) {print x}}' fichier.txt
    Merci

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 703
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    awk '{n[$2]=($2 in n)?n[$2]FS$3:$3}END{for(i in n)print i,n[i]}' tonFichier
    AT1G01010 NA 0.0714286 NA 0.0453217 0.0662394 0.0631579 0.0454545 0.423177 0.0489694 0.0277778 0.0434783 0.05 NA 0.0769231
    AT1G01020 NA 0.05 0.0769231 0.0769231 0.0621867 NA

Discussions similaires

  1. Réponses: 0
    Dernier message: 09/06/2015, 15h19
  2. AWK Comparer un champ sur plusieurs lignes
    Par drac08 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 21/08/2012, 19h03
  3. Réponses: 3
    Dernier message: 26/07/2007, 16h54
  4. Lire un fichier ligne par ligne avec Awk
    Par Krispy dans le forum Linux
    Réponses: 8
    Dernier message: 07/09/2006, 16h14
  5. aditionner les champs d'une table ligne par ligne
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 3
    Dernier message: 09/08/2005, 09h38

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