Manipulation tableau shell script
Résolu
manu_ch44
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
manu-ch44 -
manu-ch44 -
Bonjour,
J'ai 2 fichiers table.txt et nom_des_tables.txt dans lesquel j'ai les valeurs suivantes:
table.txt (table_id, nbre de personnes)
0100 1
0200 52
0403 60
B700 120
nom_des_tables.txt (table_id, nom de la table)
1 TABLE DU CHEF
2 MOUSSE
183 MAURICE
772 JOHN
Dans la première table il faut manipuler la premier colonnes qui est en Bytes Reverses.
0100 => 0001
0200 => 0002
0403 => 0304
B700 => 00B7
Je voudrais créer un fichier shell qui me permet de sortir le nombre de personnes qu'il y a par table:
c'est à dire:
TABLE DU CHEF 1
MOUSSE 2
MAURICE 60
JOHN 120
Merci beaucoup pour votre aide
J'ai 2 fichiers table.txt et nom_des_tables.txt dans lesquel j'ai les valeurs suivantes:
table.txt (table_id, nbre de personnes)
0100 1
0200 52
0403 60
B700 120
nom_des_tables.txt (table_id, nom de la table)
1 TABLE DU CHEF
2 MOUSSE
183 MAURICE
772 JOHN
Dans la première table il faut manipuler la premier colonnes qui est en Bytes Reverses.
0100 => 0001
0200 => 0002
0403 => 0304
B700 => 00B7
Je voudrais créer un fichier shell qui me permet de sortir le nombre de personnes qu'il y a par table:
c'est à dire:
TABLE DU CHEF 1
MOUSSE 2
MAURICE 60
JOHN 120
Merci beaucoup pour votre aide
A voir également:
- Manipulation tableau shell script
- Tableau word - Guide
- Classic shell - Télécharger - Personnalisation
- Tableau ascii - Guide
- Script vidéo youtube - Guide
- Trier un tableau excel - Guide
10 réponses
Salut,
Y'a un truc qui m'échappe dans tes tables, c'est la correspondances entre les "table_id" ;-((
Autant les 2 premières ça correspond, autant les 2 autres je ne vois pas ;-\
Y'a un truc qui m'échappe dans tes tables, c'est la correspondances entre les "table_id" ;-((
1 TABLE DU CHEF 0100 1 2 MOUSSE 0200 52 183 MAURICE 0403 60 772 JOHN B700 120
Autant les 2 premières ça correspond, autant les 2 autres je ne vois pas ;-\
Salut,
Tout d'abord merci pour la réactivité, je reformule:
Les 2 premières tables ce sont les fichiers de départs :
table.txt (table_id en bytes reverse et en hexa, nbre de personnes)
et
nom_des_tables.txt (table_id en décimale, nom de la table) , .
Ensuite mon programme manipule la première colonne de table.txt afin d'avoir:
0100 => H'0001 = 1
0200 => H'0002 = 2
0403 => H'0304 = 772
B700 => H'00B7 = 183
Enfin il fait la correspondance entre le nom_des_tables.txt (table_id, nom de la table) et table.txt après la manipulation
le dernier tableau que je veux obtenir c'est :
TABLE DU CHEF 1
MOUSSE 52
MAURICE 60
JOHN 120
Dis-moi si c'est mieux.
Merci
Tout d'abord merci pour la réactivité, je reformule:
Les 2 premières tables ce sont les fichiers de départs :
table.txt (table_id en bytes reverse et en hexa, nbre de personnes)
et
nom_des_tables.txt (table_id en décimale, nom de la table) , .
Ensuite mon programme manipule la première colonne de table.txt afin d'avoir:
0100 => H'0001 = 1
0200 => H'0002 = 2
0403 => H'0304 = 772
B700 => H'00B7 = 183
Enfin il fait la correspondance entre le nom_des_tables.txt (table_id, nom de la table) et table.txt après la manipulation
le dernier tableau que je veux obtenir c'est :
TABLE DU CHEF 1
MOUSSE 52
MAURICE 60
JOHN 120
Dis-moi si c'est mieux.
Merci
j'affiche:
0001
0002
0304
00B7
avec:
au lieu de
printf " ${table3col[n]}${table4col[n]}${table1col[n]}${table2col[n]} \n"
quand je veux convertir en décimal, je mets:
printf " %d \n" ${table3col[n]}${table4col[n]}${table1col[n]}${table2col[n]} $IPHEXA
j'obtiens:
1
2
error
error
une idée ?
Merci
0001
0002
0304
00B7
avec:
au lieu de
printf " ${table3col[n]}${table4col[n]}${table1col[n]}${table2col[n]} \n"
quand je veux convertir en décimal, je mets:
printf " %d \n" ${table3col[n]}${table4col[n]}${table1col[n]}${table2col[n]} $IPHEXA
j'obtiens:
1
2
error
error
une idée ?
Merci
Si ça peut t'avancer, pour la conversion j'ai ça :
;-))
$ cat tables.txt 0100 1 0200 52 0403 60 B700 120 $ while read A; do echo "ibase=16;$(sed 's/\(..\)\(..\)\(.*\)/\2\1/' <<<$A)" | bc ;done < tables.txt 1 2 772 183 $
;-))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci pour cette commande.
Par contre le bc ne passe pas:
-bash: bc: command not found
-bash: echo: write error: Broken pipe
-bash: bc: command not found
-bash: echo: write error: Broken pipe
-bash: bc: command not found
-bash: echo: write error: Broken pipe
-bash: bc: command not found
quand je supprime "| bc"
j'ai bien les valeurs
Par contre le bc ne passe pas:
-bash: bc: command not found
-bash: echo: write error: Broken pipe
-bash: bc: command not found
-bash: echo: write error: Broken pipe
-bash: bc: command not found
-bash: echo: write error: Broken pipe
-bash: bc: command not found
quand je supprime "| bc"
j'ai bien les valeurs
Essaye avec ça :
$ while read A; do printf "%d\n" "0X$(sed 's/\(..\)\(..\)\(.*\)/\2\1/' <<<$A)" ;done < tables.txt 1 2 772 183
quand je tape bc ou dc
j'obtiens:
# dc
-bash: dc: command not found
#bc
-bash: bc: command not found
En fait je peux récupérer le table_id en hexa dans le fichier nom_des_tables.txt.
Ca me fait:
1 TABLE DU CHEF
2 MOUSSE
B7 MAURICE
304 JOHN
Ainsi je m'affranchis de la conversion.
Je continue ......
Merci
j'obtiens:
# dc
-bash: dc: command not found
#bc
-bash: bc: command not found
En fait je peux récupérer le table_id en hexa dans le fichier nom_des_tables.txt.
Ca me fait:
1 TABLE DU CHEF
2 MOUSSE
B7 MAURICE
304 JOHN
Ainsi je m'affranchis de la conversion.
Je continue ......
Merci
Non désolé,
Ta commande fonctionne
C'est bon , trop bon !
Je continue, tu déjà m'as enlevé une belle épine du pied.
Merci beaucoup
Ta commande fonctionne
C'est bon , trop bon !
Je continue, tu déjà m'as enlevé une belle épine du pied.
Merci beaucoup
Cool Raoul ;-)
Par contre je réitère ma question :
je suppose qu'en réalité les fichiers ne sont pas triés comme dans ton exemple et qu'il faut réellement chercher une correspondance entre les table_id ?
Par contre je réitère ma question :
je suppose qu'en réalité les fichiers ne sont pas triés comme dans ton exemple et qu'il faut réellement chercher une correspondance entre les table_id ?
Bonjour,
Ca y est j'ai fini.
Il faut effectivement trouver une correspondance entre les table_id.
Pour cela j'ai une boucle dans une boucle:
for p in $(seq $o)
do
for n in $(seq $m)
do
if test ${table1biscol[p]} == ${table3col[n]}
then
printf "personne a la table for ${table4col[n]} : ${table2col[p]}\n"
fi
done
done
Merci Beaucoup pour ton aide
Ca y est j'ai fini.
Il faut effectivement trouver une correspondance entre les table_id.
Pour cela j'ai une boucle dans une boucle:
for p in $(seq $o)
do
for n in $(seq $m)
do
if test ${table1biscol[p]} == ${table3col[n]}
then
printf "personne a la table for ${table4col[n]} : ${table2col[p]}\n"
fi
done
done
Merci Beaucoup pour ton aide