Script shell

Résolu
Salut,

j'essaye de faire un script shell pour extraire les données à partir d'un fichier texte.

Les données sont formatées ainsi :

debut_texte : 123 AAAA BBBB
debut_texte : 9 AAAA
debut_texte : 44 AAAA BBBB

en fait j'aimerais tout simplement récupérer AAAA (qui comprend des caractères majuscules et parfois des chiffres)

j'utilise grep pour la recherche comme cela :

grep -o '[A-Z0-9]{1,16}' data.txt


le soucis c'est que ça ne m'affiche rien, je vois pas où ça cloche :(

Merci d'avance pour votre aide !

3 réponses

  1. Contributeur
    Salut,

    Merci d'afficher un exemple concret de ton fichier, peut être que "grep" n'est pas la solution idéale....

    Sinon essaye plutôt avec "egrep" (ou grep -E).
    1. voilà un extrait

      161  07/11/N1011 00:33 BOBLEPONGE, dasihaul  
      puissance : 114 HIPOKILE PASTISSAD   
      943  voir  
      163  07/11/N1011 00:18 MARCAURELL, dasihaul  
      puissance : 176 CHAT7NOIR   
      655  voir  
      164  07/11/N1011 00:13 HULRYC, dasihaul  
      puissance : 132 HIPOKILE PASTISSAD   
      1004  voir  
      165  07/11/N1011 00:10 MARCAURELL, dasihaul  
      puissance : 176 NIARKS PASTISSAD 
      1. ceux sont les lignes où il y a le mot "puissance" qui m'intéressent
      2. Contributeur
        Et tu dois récupérer quoi exactement ?

        Mets-le en gras dans l'exemple ;-)
      3. voilà
    2. Contributeur
      $ cat brol
      161  07/11/N1011 00:33 BOBLEPONGE, dasihaul  
      puissance : 114 HIPOKILE PASTISSAD   
      943  voir  
      163  07/11/N1011 00:18 MARCAURELL, dasihaul  
      puissance : 176 CHAT7NOIR   
      655  voir  
      164  07/11/N1011 00:13 HULRYC, dasihaul  
      puissance : 132 HIPOKILE PASTISSAD   
      1004  voir  
      165  07/11/N1011 00:10 MARCAURELL, dasihaul  
      puissance : 176 NIARKS PASTISSAD
      
      $ awk '$1 ~ /puissance/ { print $4 }' brol 
      HIPOKILE
      CHAT7NOIR
      HIPOKILE
      NIARKS
      
      $ 
      1. merci de ton aide, juste tu peux m'expliquer un peu comment fonctionne ta commande ?
      2. Contributeur
        $1 ~ /puissance/
        Si le champ 1 ($1) est équivalent (~) au motif entre "/" et "/"

        { print $4 }'
        Afficher sur la sortie standard le champ 4 ($4)

        * Les champs par défaut étant délimiter par un espace
      3. merci beaucoup ! ça marche à merveille :D