[Shell-script] Alignement de colonnes
Phil
-
dubcek Messages postés 18627 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18627 Date d'inscription Statut Contributeur Dernière intervention -
Salut à tous.
Comment faire pour aligner des colonnes par la droite. Voilà le type de fichier que je posséde :
Je voudrais obtenir :
Si l'un de vous à la réponse, bah ça m'intéresse :)
Merçi d'avance.
Comment faire pour aligner des colonnes par la droite. Voilà le type de fichier que je posséde :
-24.0068 25.2567 0.5895 5.26597 84.2389
Je voudrais obtenir :
-24.0068 25.2567 0.5895 5.26597 84.2389
Si l'un de vous à la réponse, bah ça m'intéresse :)
Merçi d'avance.
Configuration: Windows XP Firefox 2.0.0.3
8 réponses
-
Merçi jipicy, ta méthode fonctionne parfaitement, mais impossible de la mettre en place dans un script. Si je l'écrit tel quelle, le script tourne en boucle.
As-tu une idée là dessus ?-
-
Tiens, mais du coup je l'ai fait avec un awk et printf :
#!/bin/ksh awk '{printf ("%8s\n",$1)}' $1 > tmp1 awk '{printf ("%8s\n",$2)}' $1 > tmp2 awk '{printf ("%8s\n",$3)}' $1 > tmp3 awk '{printf ("%8s\n",$4)}' $1 > tmp4 awk '{printf ("%3s\n",$5)}' $1 > tmp5 awk '{printf ("%8s\n",$6)}' $1 > tmp6 awk '{printf ("%8s\n",$7)}' $1 > tmp7 paste tmp1 tmp2 tmp3 tmp4 tmp5 tmp6 tmp7 > $1 rm tmp* exit -
-
Salut jipicy, voilà une parite du fichier d'entrée :
71.1426 -14.6447 P 2.50 SCO 70 29 0.0 -21-57 -0.0 0.069 DNK 71.1426 -14.6447 P 10.25 KBS 78 55 32.2 11 56 30.1 0.074 BER 71.1426 -14.6447 P 10.64 SPB4 78 10 44.0 16 20 53.5 0.340 NAO 71.1426 -14.6447 S 10.25 KBS 78 55 32.2 11 56 30.1 0.074 BER
J'ai volontairement supprimé les 2 premières colonnes sinon l'ensemble ne rentrait pas en largeur, les substring du awk ne correspondent donc pas.
PS : Je sais bien que le script est un peu lourd mais je fais avec ce je que je connais (je suis encore débutant) :)
Bien sûr si tu peux "optimiser" tout ça, tes suggestions seront plus que bienvenue :)) -
-
-
svp pouvez vous m'aider sur une commande shell qui permet
de verifier si un nom comporte le caractére spécial '
puis d'ajouter un \avant le caractére ' pour permettre d'insérer un nom dans une base de donné mysql
merci de m 'avoir aider -
et quelle est la différence ?
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Hi
je dirai, mais je peux pas tester: awk '{printf("%-20s\n", $0}' -
Salut,
Ou avec la commande "printf" du shell :jp@MDK:~/tmpfs ssh$ cat plop -24.0068 25.2567 0.5895 5.26597 84.2389 jp@MDK:~/tmpfs ssh$ while read i;do printf "%8s\n" "$i";done <plop -24.0068 25.2567 0.5895 5.26597 84.2389 jp@MDK:~/tmpfs ssh$
;-)) -
Alors autant pour moi, ça marche ! le problème est résolu. Mes excuses à dubsek, j'ai fait une erreur en tapant le awk et j'ai alors pensé que ta méthode ne fonctionnait pas....Elle marche, en fait, super bien.
Merçi à vous deux. -
Bonjour,
Je voulais savoir comment ont peut faire la même chose avec un programme C, Je m'explique :
J'ai un prog en C qui affiche :
150
24000
300
Le résultat que je veut avoir :
150
24000
300
Merci