A voir également:
- Shell awk -f
- Classic shell windows 11 - Télécharger - Personnalisation
- Chkdsk /f - Guide
- Sfc /scannow /f /r - Guide
- F lux - Télécharger - Divers Utilitaires
- F panel carte mere - Forum Matériel & Système
8 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
14 avril 2008 à 12:41
14 avril 2008 à 12:41
Salut,
Une piste peut être... commence par coller tes 2 fichiers avec la commande "paste", puis à partir de là avec des boucles dans "awk", divises tes champs 1-13; 2-14; 3-15; etc. et dirige le résultat en fonction de ta condition (!= 0)...
Une piste peut être... commence par coller tes 2 fichiers avec la commande "paste", puis à partir de là avec des boucles dans "awk", divises tes champs 1-13; 2-14; 3-15; etc. et dirige le résultat en fonction de ta condition (!= 0)...
Je dois surement mal faire mon script car il ne veut pas multiplier ou diviser les données de a par celles de b....
Par contre pour ce qui est à l'intérieur d'un meme fichier ca va
Par contre pour ce qui est à l'intérieur d'un meme fichier ca va
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
14 avril 2008 à 13:26
14 avril 2008 à 13:26
Affiche déjà ce que t'as fait qu'on y jette un œil...
Quand j'ecris : awk '{ print 100*$2/$3 }' a.dat >c.dat j 'ai du mettre les 12 colonnes de b dans le fichier a. Et la surprise : j'ai 58.32/65.98 et il execute 58/65 pourquoi ?
Il doit y avoir un moyen plus simple d'utiliser la fonction awk au lieu de passer mes données dans le premier fichier
Ex:
a.dat b.dat
1 35 1 44.35
2 36 2 58.78
3 34.56 3 69.44
4 15 4 59.50
5 14.45 5 88.52
donc je veux un fichier c.dat avec 100*colonne a /colonneb
1 78.92
2 ...
merci d'avance car je tourne en rond
merci d'avance
Il doit y avoir un moyen plus simple d'utiliser la fonction awk au lieu de passer mes données dans le premier fichier
Ex:
a.dat b.dat
1 35 1 44.35
2 36 2 58.78
3 34.56 3 69.44
4 15 4 59.50
5 14.45 5 88.52
donc je veux un fichier c.dat avec 100*colonne a /colonneb
1 78.92
2 ...
merci d'avance car je tourne en rond
merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
14 avril 2008 à 14:11
14 avril 2008 à 14:11
$ cat fic1 1 35 2 36 3 34.56 4 15 5 14.45 $ cat fic2 1 44.35 2 58.78 3 69.44 4 59.50 5 88.52 $ paste fic1 fic2 1 35 1 44.35 2 36 2 58.78 3 34.56 3 69.44 4 15 4 59.50 5 14.45 5 88.52 $ paste fic1 fic2 | awk '{ print $1,(100 * $2 / $4) }' 1 79,5455 2 62,069 3 49,2754 4 25,4237 5 15,9091 $;-))
merci
mais cela ne me calcul pas exactement ce que je veux.
Si j(ai 23.16/58.97 il me calcule 23/58
dc souci
aurais-tu une idée ?
mais cela ne me calcul pas exactement ce que je veux.
Si j(ai 23.16/58.97 il me calcule 23/58
dc souci
aurais-tu une idée ?
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
14 avril 2008 à 14:38
14 avril 2008 à 14:38
Oui, il faut changer le séparateur des décimales par une virgule...
$ cat fic1 1 35 2 36 3 34,56 4 15 5 14,45 $ cat fic2 1 44,35 2 58,78 3 69,44 4 59,50 5 88,52 $ paste fic1 fic2 | awk '{ print $1,(100 * $2 / $4) }' 1 78,9177 2 61,2453 3 49,7696 4 25,2101 5 16,324 $;-))