Awk : problème avec printf
Fermé
paille1962
Messages postés
2
Date d'inscription
lundi 14 janvier 2013
Statut
Membre
Dernière intervention
14 janvier 2013
-
14 janv. 2013 à 17:04
dubcek Messages postés 18765 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 20 février 2025 - 15 janv. 2013 à 09:40
dubcek Messages postés 18765 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 20 février 2025 - 15 janv. 2013 à 09:40
A voir également:
- Awk : problème avec printf
- DNS_PROBE_FINISHED_NXDOMAIN : dnsapi.dll (Win32:Patched-AWK) ✓ - Forum Virus
- Supprimer des lignes avec awk ou sed ✓ - Forum Shell
- Fonctionnement de foreach et awk et set ✓ - Forum Shell
- Commande bash awk, comment mettre en variables. ✓ - Forum Linux / Unix
- Commande équivalent à Sed, awk, tail,head en powershell ! - Forum Shell
4 réponses
paille1962
Messages postés
2
Date d'inscription
lundi 14 janvier 2013
Statut
Membre
Dernière intervention
14 janvier 2013
14 janv. 2013 à 18:00
14 janv. 2013 à 18:00
j'ai refait avec des paranthèses , c'est pire :-(
BEGIN { FS=","
#OFMT="%.2f"
print "-----HANDOVER INTER MSC----- \n"," Date Heure Target MSC Succ_Inter_MSC_inc Succ_Inter_MSC_out\n"
}
($7+$15) > 0 {
printf (" %14s %12s %12.2f %.2f\n", "20" substr($1,1,2) "-" substr($1,3,2) " " substr($1,7,2) ":" substr($1,9,2) ,
$2 , (($9+$17) / ($7+$15)) *100 ,
{ if (($3 + $19) > 0)
{printf ("%.2f\n", ((($5+$21) / ($3+$19)) *100))}
else
{ printf("%.2f\n",0)}
)
}
}
le fichier que je traite à la forme suivante
1212310700134,CHAMBNG,13,1,13,1,9,1,8,1,5,1,5,1,33,1,28,1,8,1,8,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,14,1,9,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,VELIZNG,0,1,0,1,0,1,0,1,0,1,0,1,1,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,LYPRENG,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,MONANG,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,FMBEZNG,0,1,0,1,0,1,0,1,0,1,0,1,36,1,34,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,FMONTNG,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,ARGENBC,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,BORDEBC,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,BORDENG,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,CHELLNG,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,SOUSTNG,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,VANDONG,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,STEGENG,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,BEAUJNG,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,NAVARNG,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,AMIENNG,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,LYONNG,39,1,39,1,12,1,12,1,6,1,6,1,72,1,69,1,25,1,25,1,0,1,0,1,0,0,0,0,2,1,2,1,0,1,0,1,0,1,0,1,3,1,2,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
BEGIN { FS=","
#OFMT="%.2f"
print "-----HANDOVER INTER MSC----- \n"," Date Heure Target MSC Succ_Inter_MSC_inc Succ_Inter_MSC_out\n"
}
($7+$15) > 0 {
printf (" %14s %12s %12.2f %.2f\n", "20" substr($1,1,2) "-" substr($1,3,2) " " substr($1,7,2) ":" substr($1,9,2) ,
$2 , (($9+$17) / ($7+$15)) *100 ,
{ if (($3 + $19) > 0)
{printf ("%.2f\n", ((($5+$21) / ($3+$19)) *100))}
else
{ printf("%.2f\n",0)}
)
}
}
le fichier que je traite à la forme suivante
1212310700134,CHAMBNG,13,1,13,1,9,1,8,1,5,1,5,1,33,1,28,1,8,1,8,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,14,1,9,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,VELIZNG,0,1,0,1,0,1,0,1,0,1,0,1,1,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,LYPRENG,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,MONANG,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,FMBEZNG,0,1,0,1,0,1,0,1,0,1,0,1,36,1,34,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,FMONTNG,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,ARGENBC,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,BORDEBC,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,BORDENG,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,CHELLNG,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,SOUSTNG,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,VANDONG,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,STEGENG,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,BEAUJNG,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,NAVARNG,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,AMIENNG,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
1212310700134,LYONNG,39,1,39,1,12,1,12,1,6,1,6,1,72,1,69,1,25,1,25,1,0,1,0,1,0,0,0,0,2,1,2,1,0,1,0,1,0,1,0,1,3,1,2,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
Utilisateur anonyme
14 janv. 2013 à 18:32
14 janv. 2013 à 18:32
Tu fais des printf dans un printf ?
Avec des conditions entre accolades ?
Tu devrais utiliser un opérateur ternaire.
Par soucis de lisibilité, tu devrais affecter des variables avec les valeurs que tu veux afficher, plutôt que d'afficher les calculs.
Avec des conditions entre accolades ?
Tu devrais utiliser un opérateur ternaire.
test ? alors : sinon
Par soucis de lisibilité, tu devrais affecter des variables avec les valeurs que tu veux afficher, plutôt que d'afficher les calculs.
dubcek
Messages postés
18765
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
20 février 2025
5 624
Modifié par dubcek le 15/01/2013 à 09:42
Modifié par dubcek le 15/01/2013 à 09:42
hello
il manque une valeur, le printf en veut 4, il y en a 3
il manque une valeur, le printf en veut 4, il y en a 3
printf " %14s %12s %12.2f %.2f\n" , "20" substr($1,1,2) "-" substr($1,3,2) " " substr($1,7,2) ":" substr($1,9,2) , $2 , (($9+$17) / ($7+$15)) *100