Travailler les donnés d'un tableau

Résolu
dino -  
dubcek Messages postés 18789 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.


A voir également:

7 réponses

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Salut,

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

0
dino
 
Bonjour zipe31 ,

Super ca me va merci beaucoup !
0
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
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Euh... t'as un exemple de ton code s'il te plaît ?
0
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
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Ben il te faut découper ton résultat avec la commande de ton choix (cut, awk, etc.), et déplacer ton fichier.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
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
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
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
on peut définir les espaces comme faisant partie du séparateur de champ
awk -F " *[|] *" '{print $2 "+"}' fichier
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
enlever le "+"
0