Travailler les donnés d'un tableau

Résolu/Fermé
dino - 5 juin 2014 à 11:37
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 7 juin 2014 à 15:02
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

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
5 juin 2014 à 11:44
Salut,

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

0
Bonjour zipe31 ,

Super ca me va merci beaucoup !
0
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 dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
5 juin 2014 à 15:07
Euh... t'as un exemple de ton code s'il te plaît ?
0
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 dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
5 juin 2014 à 15:31
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
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 dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
6 juin 2014 à 10:19
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
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
7 juin 2014 à 11:19
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
7 juin 2014 à 15:02
enlever le "+"
0