Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1068 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [BASH / AWK] Alignement de colonnes ... galère ! [Résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[BASH / AWK] Alignement de colonnes ... galère ! [Résolu]

n°1182938
tanshiro
Posté le 01-12-2009 à 11:06:17  profilanswer
 

Bonjour,
 
Je suis en train de faire un petit script me permettant (entre autre) de remplacer le bon vieux 'du -k' sur ma machine.
 
Voici un exemple de résultat de mon script :
 

Code :
  1. bea ----  337107 Ko ---- 30 % ---- ###############################
  2. bea.tar ----  145536 Ko ---- 13 % ---- ##############
  3. checkconfig8.1 ----  1670 Ko ---- 0 % ---- #
  4. genpack ----  482 Ko ---- 0 % ---- #
  5. legato ----  30648 Ko ---- 2 % ---- ###
  6. lost+found ----  8 Ko ---- 0 % ---- #
  7. ncftp ----  1640 Ko ---- 0 % ---- #
  8. patrol ----  532573 Ko ---- 48 % ---- #################################################
  9. psmeter ----  8964 Ko ---- 0 % ---- #
  10. tivoli ----  42114 Ko ---- 3 % ---- ####
  11. TOTAL /logiciels ---- 1100743 ---- 100%


 
Je voudrais juste afficher ces informations, mais avec les colonnes alignées ! (surtout la dernière qui est censé représenter des "barres" d'occupation d'une arbo. Donc pour que ce soit plus visuel, il faudrait qu'elles partent toutes du même point...). Le top tu top, c'est que ça ressemble à ceci (à quelques espaces prêts) :
 

Code :
  1. bea                     ----  337107 Ko ---- 30 %  ---- ###############################
  2. bea.tar                ----  145536 Ko ---- 13 %  ---- ##############
  3. checkconfig8.1      ----     1670 Ko ---- 0 %   ---- #
  4. genpack               ----       482 Ko ---- 0 %   ---- #
  5. legato                  ----    30648 Ko ---- 2 %   ---- ###
  6. lost+found            ----           8 Ko ---- 0 %  ---- #
  7. ncftp                   ----      1640 Ko ---- 0 %  ---- #
  8. patrol                   ----  532573 Ko ---- 48 % ---- #################################################
  9. psmeter                ----     8964 Ko ---- 0 %   ---- #
  10. tivoli                     ----   42114 Ko ---- 3 %   ---- ####
  11. TOTAL /logiciels      ----    1100743 ---- 100%


 
[EDIT -> Bon l'affichage foire sur le forum, mais vous voyez ce que je voudrais faire]
 
 
Vous vous doutez bien que la taille de chacune des colonne est variable...  
 
 
Voici mon bout de code qui gère l'affichage :
 
 

Code :
  1. ls $REP_SRC | while read line
  2.         do
  3.                 PRCT=$((100*`du -sk ${line}|awk '{print $1}'`/${TAILLE_TOTALE}))
  4.                 TAILLE_REP=$(du -sk ${line}|awk '{print $1}')
  5.                 # Calcul de la barre de progression par arbo
  6.                 BARRE_PROGRESS="#"
  7.                 i=0
  8.                 while [[ $i -ne $PRCT ]]
  9.                 do
  10.                         BARRE_PROGRESS=$BARRE_PROGRESS"#"
  11.                         i=$(($i+1))
  12.                 done
  13. # Affichage non formate qui fonctionne         
  14. echo "${line} ----  $TAILLE_REP Ko ---- $PRCT % ---- $BARRE_PROGRESS"
  15.         done > $FIC_SORT
  16. echo "TOTAL $REP_SRC ---- $TAILLE_TOTALE ---- 100% " >> $FIC_SORT


 
 
 
Quelqu'un à t'il une idée pour faire cela ? (J'en viens à penser que ce n'est pas possible avec AWK ...)
 
 
Merci  :jap:


Message édité par tanshiro le 02-12-2009 à 14:11:13
mood
Publicité
Posté le 01-12-2009 à 11:06:17  profilanswer
 

n°1182955
zecrazytux
Posté le 01-12-2009 à 12:10:36  profilanswer
 

printf


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
n°1182986
tanshiro
Posté le 01-12-2009 à 14:26:29  profilanswer
 

J'ai essayé ça :
 

Code :
  1. # Affichage non formate qui fonctionne         
  2. echo "${line} ----  $TAILLE_REP Ko ---- $PRCT % ---- $BARRE_PROGRESS"
  3. #       printf "%-20s %-10s %-10s %-10s \n"${line} $TAILLEDU  $PRCT, $BARRE_PROGRESS
  4. #       printf("%-15s %-35s %-35s\n",${line},$PRCT,$BARRE_PROGRESS);


 
 
 
 
Mais ça fait aps ce que j'aimerai ... T'as une piste sur le printf ?


Message édité par tanshiro le 01-12-2009 à 14:26:58
n°1183039
zecrazytux
Posté le 01-12-2009 à 17:30:18  profilanswer
 

vire [[ pour [, bashisme pas beau (inutile qui plus est)
 
et pour le printf:  
 
printf "%-20.19s %-10.9s %-10.9s %-10.9s \n" "${line}" "$TAILLEDU" "$PRCT" "$BARRE_PROGRESS"


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
n°1183060
[Albator]
MDK un jour, MDK toujours !
Posté le 01-12-2009 à 19:59:24  profilanswer
 

T'as essayé la commande column -t ?

n°1183227
tanshiro
Posté le 02-12-2009 à 14:10:40  profilanswer
 

Ho yeah, ça marche !
 
Merci beaucoup zecrazytux !  :jap:  (bon après je sais pas à quoi correspond ton truc a virgule, mais en tripatouillant, je vais voir).
Encore merci
 
Albator, nan j'ai pas essayé, mais je vais regarder ça pour ma culture perso.
 
 
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [BASH / AWK] Alignement de colonnes ... galère ! [Résolu]

 

Sujets relatifs
[bash] Vérifier la version des outils dans un script[bash] Chercher deux lignes vides consécutives
[Résolu] DHCPD ne démarre pas[bash] empilage de grep
script bash pour ftp[résolu] Que signifie la "hyst" dans les indications de températures ?
[Résolu] [SAMBA] quotas sur repertoire possible?[RESOLU]Help transfert FXP serv. FTP Lenny <-->freebox HD
[Resolu] Ubuntu, fstab et dossier /media/disk* RESOLU récupérer données NAS partition linux Qnap TS209 [résolu]
Plus de sujets relatifs à : [BASH / AWK] Alignement de colonnes ... galère ! [Résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR