Soustraction entre les flotants de deux colonnes
Résolu
poiuytreza01234567890
Messages postés
57
Statut
Membre
-
poiuytreza01234567890 Messages postés 57 Statut Membre -
poiuytreza01234567890 Messages postés 57 Statut Membre -
Bonjour,
J'ai un fichier avec bcp de colonnes et bcp de lignes bref
Je veux soustraire la 16éme colonne de la 14éme colonne (sachants que leur valeurs est un flotant).
voici mon script:
mon script m'affiche deux erreurs:
impossible de manipuler des flotants et le signe "-" de soustraction n'ai pas reconnu
Pouvez-vous me corriger SVP
Merci
J'ai un fichier avec bcp de colonnes et bcp de lignes bref
Je veux soustraire la 16éme colonne de la 14éme colonne (sachants que leur valeurs est un flotant).
voici mon script:
#!/bin/bash
dirInput=/home/sukrat/fichier1.txt;
dirOutput=/home/sukrat/fichier2.txt;
val1=$(awk '{print $16}' $dirInput)
val2=$(awk '{print $14}' $dirInput)
calcul=$(($val1-$val2))
echo "$calcul" > $Output
mon script m'affiche deux erreurs:
impossible de manipuler des flotants et le signe "-" de soustraction n'ai pas reconnu
Pouvez-vous me corriger SVP
Merci
A voir également:
- Soustraction entre les flotants de deux colonnes
- Comment faire deux colonnes sur word - Guide
- Nombre de jours entre deux dates excel - Guide
- Inverser deux colonnes excel - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
- Deux ecran pc - Guide
3 réponses
salut,
bash ne gère pas les évaluations arithmétiques sur les décimaux :(
Fais tes calculs directement dans awk, au lieu de l'appeler deux fois pour pas grand chose.
bash ne gère pas les évaluations arithmétiques sur les décimaux :(
Fais tes calculs directement dans awk, au lieu de l'appeler deux fois pour pas grand chose.
En mettant comme ça:
res=$(awk -v variable1="$Val1" -v variable2="$val2" '{print (variable1-variable2)}' $dirInput)
echo "$res"
ça ne marche pas non plus :(
res=$(awk -v variable1="$Val1" -v variable2="$val2" '{print (variable1-variable2)}' $dirInput)
echo "$res"
ça ne marche pas non plus :(
J'ai ajouté une condition à mon awk
pour lui dire de m'afficher ça:
minDe=$(cut -d" " -f19 $dirInput | sort -n | sed '1,${1b;d}') #minimum de la 18éme colonne
res=$(awk -v var="$minDe" '($16-$14) > var {print "je vire de mon analyse" " $16-$14 " " "car il est > à" var}' $dirInput)
echo "$res"
Erreur:
awk: ligne de commande:1: $14 > var {print "je vire de mon analyse" " $16-$14 " " "car il est > à" var}
awk: ligne de commande:1: ^ caractère non valide « ? » dans l'expression
awk: ligne de commande:1: $14 > var {print "je vire de mon analyse" " $16-$14 " " "car il est > à" var}
awk: ligne de commande:1: ^ syntax error
je ne comprends pas! c'est quoi mon erreur ?
j'ai essayé d'autres écriture toujours la même erreur
pour lui dire de m'afficher ça:
minDe=$(cut -d" " -f19 $dirInput | sort -n | sed '1,${1b;d}') #minimum de la 18éme colonne
res=$(awk -v var="$minDe" '($16-$14) > var {print "je vire de mon analyse" " $16-$14 " " "car il est > à" var}' $dirInput)
echo "$res"
Erreur:
awk: ligne de commande:1: $14 > var {print "je vire de mon analyse" " $16-$14 " " "car il est > à" var}
awk: ligne de commande:1: ^ caractère non valide « ? » dans l'expression
awk: ligne de commande:1: $14 > var {print "je vire de mon analyse" " $16-$14 " " "car il est > à" var}
awk: ligne de commande:1: ^ syntax error
je ne comprends pas! c'est quoi mon erreur ?
j'ai essayé d'autres écriture toujours la même erreur