Travailler les donnés d'un tableau

Résolu
dino -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je suis sur AIX 7.1

sur un tableau de données je dois extraire le contenue suivant les lignes et colonnes :

#Tableau
----------------------------------------------------------------------------
Nom du script - Nom du repertoire - nom du fichier genere -
-----------------------------------------------------------------------------
AAA | TEST1 | Resultat1
BBB | TEST2 | Resultat2
CCC | TEST3 | Resultat3

je essayais ca :
script='awk -F "|" '{print $1}' $Tableau'
Rep='awk -F "|" '{print $2}' $Tableau'
fic_init='awk -F "|" '{print $3}' $Tableau'

echo "les script sont $script \n"
echo "les rep sont $Rep \n"
echo "les fichier sont $fic_init \n"

ca me donne ca :
les script sont ---------------------------------------------------------
Nom du script - Nom du repertoire - nom du fichier genere
-------------------------------------------------------------------------
AAA
BBB
CCC

les rep sont

TEST1
TEST2
TEST3

les fichier sont
Resultat1
Resultat2
Resultat3

Question :
Comment se débarrasser de l'en-tette du tableau et n'avoir que les données ?

Merci.

7 réponses

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    En ne prenant en compte que les lignes ayant le séparateur dans leur contenu ?
    awk -F "|" '/\|/ {print $1}'

    0
  2. dino
     
    Bonjour zipe31 ,

    Super ca me va merci beaucoup !
    0
  3. dino
     
    Euh ...je suis desolé de revenir j'ai une autre question SVP ...

    je voudrais au faite chercher un fichier dans mon tableau si je le trouve le copier dans le répertoire équivalent dans le tableau :

    exemple si je cherche le fichier Resultat2 et que je le trouve dans le tableau alors il doit être déplacer dans le rep TEST2.

    J'ai chercher je sui bloqué apres mon "grep" de mon fichier :-(

    MERCI
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Euh... t'as un exemple de ton code s'il te plaît ?
      0
  4. dino
     
    Voici mon tableau de reference ecrit dans un fichier plats en tableau.txt
    #Tableau
    ----------------------------------------------------------------------------
    Nom du script - Nom du repertoire - nom du fichier genere -
    -----------------------------------------------------------------------------
    AAA | TEST1 | Resultat1
    BBB | TEST2 | Resultat2
    CCC | TEST3 | Resultat3

    exemple je cherche le fichier Resultat2 dans tableau.txt par un grep ,je le trouve ,dans ce cas je dois le deplacer dans le repertoire TEST2 qui est sur la meme ligne dans le tableau.

    Merci
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Ben il te faut découper ton résultat avec la commande de ton choix (cut, awk, etc.), et déplacer ton fichier.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dino
     
    Bonjour Zip31,

    J'ai opté pour un awk comme tu me l'a proposé,mais le hic c'est que a l'affichage ,il me sort un vide au debut et a la fin ce qui ne m'arrange pas trop ,car qd je le met en variable du chemin de copie il prend les "vides" :

    Rep=awk -F "|" '{print $2}' $Tableau

    echo $Rep
    resultat : "vide"TEST2""vide

    sur le chemin mis pour la copie ca donne :

    Rep1/"vide"TEST2"vide/

    Merci pour ton aide !

    Bonne journée
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Il te suffit d'éliminer les espaces (à condition qu'on en trouve qu'en début et fin, sans quoi il faudra utiliser une autre façon) :

      $ A=" TEST1 "

      $ echo "${A}" | cat -A
      TEST1 $

      $ echo "${A// /}" | cat -A
      TEST1$

      Le
      cat -A
      n'est là que pour afficher les caractères invisibles, il ne faut pas le mettre dans la syntaxe.
      0
  7. dino
     
    Merci !

    il connait pas le "-A" ,ca me donne ca :
    cat: Not a recognized flag: A
    Usage: cat [-qrSsuZ] [-n[b]] [-v[et]] [-|File ...]

    je fais un man de cat :
    Syntax

    cat [ - q ] [ -r ] [ - s ] [ - S ] [ - u ][ - Z ] [ - n [ - b ] ] [ - v [ - e ] [ - t ] ] [ - | File ... ]

    par contre j'ai fais un basename sur $Rep et ca fct !
    Rep=awk -F "|" '{print $2}' $Tableau

    Rep1/$(basename $Rep)/ : Ca affiche sans l'espace .

    Merci beaucoup !!!

    Bonne journée !
    0
  8. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello
    on peut définir les espaces comme faisant partie du séparateur de champ
    awk -F " *[|] *" '{print $2 "+"}' fichier
    0
    1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
       
      enlever le "+"
      0