Bonjour,
Dans un script je parse un fichier texte a plat et affiche sont contenu à l'écran.
Le problème c'est que tous s'affiche sur une colonne. J'aimerai savoir comment faire afficher sur plusieurs colonnes. Est ce possible?
Merci.
Bonjour,
Dans un script je parse un fichier texte a plat et affiche sont contenu à l'écran.
Le problème c'est que tous s'affiche sur une colonne. J'aimerai savoir comment faire afficher sur plusieurs colonnes. Est ce possible?
Merci.
Envoyé par Blo0d4x3
Un extrait du fichier en entrée et de la sortie souhaitée serait un plus![]()
ok, voici une partie du fichier en question:
Sur la console le script va m'afficher ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 script1 script2 script3 ... script25
Moi ce que je voudrais c'est qu'il m'affiche:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 script1 script2 script3 script4 ... script25
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 script1 script5 script9 script2 script6 ... script3 script7 script4 script8
Envoyé par Blo0d4x3
Un script bash qui fait ce que tu veux![]()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 declare -a TabLine typeset -i NbrRec=0 typeset -i SizeCol typeset Col1=0 typeset Col2 typeset Col3 # ### Mise en table des enreg. du fichier toto.txt ### Nota : l'indice commence à zéro. # while read line ; do TabLine[$NbrRec]=$line ((NbrRec=$NbrRec+1)) done < toto.txt ((SizeCol=$NbrRec/3)) ((modulo=$NbrRec%3)) [[ $modulo -ne 0 ]] && ((SizeCol=$SizeCol+1)) ((Col2=$SizeCol)) ((Col3=$SizeCol*2)) # ### Affichage sous forme de 3 colonnes # while [[ $IndLine -lt $SizeCol ]] ; do printf %-15s\\t%-15s\\t%-15s\\n ${TabLine[$Col1]} ${TabLine[$Col2]} ${TabLine[$Col3]} ((IndLine=$IndLine+1)) ((Col1=$Col1+1)) ((Col2=$Col2+1)) ((Col3=$Col3+1)) done
Merci :-).
J'ai adapter un peu et ca ne marche pas et j'aurai quelque questions
Dans le premier printf "$NB_RECORD" dans le while, la variable s'incrémente bien. Mais une fois sortie du while, la variable $NB_RECORD vaut 0 !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 function list() { typeset -i NB_RECORD=0 typeset -i SIZECOL declare -a TabLine typeset Col1=0 typeset Col2 typeset Col3 printf "$BLUE Liste des scripts disponibles: $NORMAL\n\n" cat $FICH_REF | egrep "^[^#][^#]*" | while read script over do TabLine[$NB_RECORD]=$script ((NB_RECORD=$NB_RECORD+1)) printf "record: $NB_RECORD\n" done printf "record: $NB_RECORD\n" ...
Et forcement le déroulement du script s'effectue mal a cause de ca.![]()
Envoyé par Blo0d4x3
Faire "typeset -i NB_RECORD=0" dans une fonction déclare la variable NB_RECORD locale à la fonction.
Solution :
Nota : ce serait sympa de ta part de mettre en ligne ton script d'affichage amélioré
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 .../... typeset -i NB_RECORD=0 function list() { .../... NB_RECORD=0 ((NB_RECORD=$NB_RECORD+1)) .../... printf "record: $NB_RECORD\n" .../... } printf "record: $NB_RECORD\n"![]()
Partager