Exclure une valeur d'un traitement dans une condition
Résolu/Fermé
poiuytreza01234567890
Messages postés
54
Date d'inscription
jeudi 17 janvier 2013
Statut
Membre
Dernière intervention
4 avril 2013
-
28 janv. 2013 à 18:00
poiuytreza01234567890 Messages postés 54 Date d'inscription jeudi 17 janvier 2013 Statut Membre Dernière intervention 4 avril 2013 - 29 janv. 2013 à 16:55
poiuytreza01234567890 Messages postés 54 Date d'inscription jeudi 17 janvier 2013 Statut Membre Dernière intervention 4 avril 2013 - 29 janv. 2013 à 16:55
A voir également:
- Exclure une valeur d'un traitement dans une condition
- Excel cellule couleur si condition texte - Guide
- Sélectionnez une extension d'un fichier qui s'ouvre avec un traitement de texte. - Guide
- Formule excel si contient texte alors valeur ✓ - Forum Excel
- Attribuer une valeur à une cellule texte excel ✓ - Forum Excel
- Excel vérifier si une valeur existe dans une colonne ✓ - Forum Excel
5 réponses
Utilisateur anonyme
29 janv. 2013 à 15:44
29 janv. 2013 à 15:44
awk '{ if($3<minCol3 || !minCol3)minCol3=$3 col2[++n]=$2 w[n]=$0 } END{ asort(col2) minCol2=col2[2] for(i=1;i<=n;i++){ split(w[i],A) if(A[2]!=minCol2 && A[3]<minCol2)print w[i] } }' tonEchantillon x 2 3
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
28 janv. 2013 à 18:20
28 janv. 2013 à 18:20
Salut,
C'est quoi "i" ?
C'est quoi "i" ?
poiuytreza01234567890
Messages postés
54
Date d'inscription
jeudi 17 janvier 2013
Statut
Membre
Dernière intervention
4 avril 2013
28 janv. 2013 à 18:47
28 janv. 2013 à 18:47
c'est le minimum de la colonne 3 dans l'exemple que j'ai donner elle est de 2
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
28 janv. 2013 à 18:55
28 janv. 2013 à 18:55
Il suffit alors de lui dire de ne pas s'occuper de la ligne dont le champ 3 est égal à i :
awk '$3 != var { ... }'
poiuytreza01234567890
Messages postés
54
Date d'inscription
jeudi 17 janvier 2013
Statut
Membre
Dernière intervention
4 avril 2013
28 janv. 2013 à 19:08
28 janv. 2013 à 19:08
var c'est mincol2 et pas 3
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
28 janv. 2013 à 19:14
28 janv. 2013 à 19:14
Oui et alors ? mincol2 n'est pas la valeur minimale de référence ?
poiuytreza01234567890
Messages postés
54
Date d'inscription
jeudi 17 janvier 2013
Statut
Membre
Dernière intervention
4 avril 2013
28 janv. 2013 à 19:16
28 janv. 2013 à 19:16
vous voulez dire quoi par valeur minimale de référence?
Utilisateur anonyme
29 janv. 2013 à 00:09
29 janv. 2013 à 00:09
Je reprends ce que tu dis, de manière claire :
On ne peut pas aller plus loin.
T'as tellement trituré le machin, je ne suis pas certain que tout cela ait encore un sens.
On jette tout, et on recommence:
tu nous donnes
- un échantillon représentatif du fichier (une dizaine de lignes)
- le résultat qui correspond à tes attentes (les lignes de l'échantillon qui correspondent)
- et un exposé clair des raisons pour lesquelles elles correspondent.
a=min(col2) b=min(col3) si b<a, alors var=vraic'est tout.
On ne peut pas aller plus loin.
T'as tellement trituré le machin, je ne suis pas certain que tout cela ait encore un sens.
On jette tout, et on recommence:
tu nous donnes
- un échantillon représentatif du fichier (une dizaine de lignes)
- le résultat qui correspond à tes attentes (les lignes de l'échantillon qui correspondent)
- et un exposé clair des raisons pour lesquelles elles correspondent.
poiuytreza01234567890
Messages postés
54
Date d'inscription
jeudi 17 janvier 2013
Statut
Membre
Dernière intervention
4 avril 2013
Modifié par poiuytreza01234567890 le 29/01/2013 à 10:13
Modifié par poiuytreza01234567890 le 29/01/2013 à 10:13
La condition est : si mincol3<mincol2 (ne pas inclure dans le calcule de mincol2 la valeur correspondante dans $2 à mincol3).
exemple:
$1 $2 $3
x 2 3
y 4 4
z 7 8
w 4 5
le résultat de vérification si je met un echo $0 dans ma condition doit être:
x 2 3
car mincol3=3 et mincol2=4 et mincol3 doit être < mincol2 donc il y a que la ligne de x qui respecte cette condition.
alors moi je veux stocker cette condition dans une variable pour pouvoir l'utiliser après dans mon code tel que:
si la condition est vrai then faire un traitement ......
exemple:
$1 $2 $3
x 2 3
y 4 4
z 7 8
w 4 5
le résultat de vérification si je met un echo $0 dans ma condition doit être:
x 2 3
car mincol3=3 et mincol2=4 et mincol3 doit être < mincol2 donc il y a que la ligne de x qui respecte cette condition.
alors moi je veux stocker cette condition dans une variable pour pouvoir l'utiliser après dans mon code tel que:
si la condition est vrai then faire un traitement ......
poiuytreza01234567890
Messages postés
54
Date d'inscription
jeudi 17 janvier 2013
Statut
Membre
Dernière intervention
4 avril 2013
Modifié par poiuytreza01234567890 le 29/01/2013 à 10:09
Modifié par poiuytreza01234567890 le 29/01/2013 à 10:09
Quand je fais comme ça:
mincol2=$(cut -d" " -f2 $monFichier | sort -n | sed '1,${1b;d}')
mincol3=$(cut -d" " -f3 $monFichier | sort -n | sed '1,${1b;d}')
condition=$(awk -v var1="$mincol2" -v var2="$mincol3" '$2 != var1 && $3 < var2 {print "true"}' $monFichier)
echo "$"condition"
il m'affiche une ligne vide
j'ai testé avec $3>var2 : et là il m'affiche le résultat des lignes qui ne corresponds pas à ce que je cherche. genre si je prend l'exemple de mon tableau du départ il m'affiche la ligne y et z (true, true). complétement logique. mais quand je met $3<var2 là au lieu de m'afficher la ligne de x (true) il ne m'affiche rien( une ligne vide)
PS: true (ou "x 1 2 " si je mets $0 à la place de true)
mincol2=$(cut -d" " -f2 $monFichier | sort -n | sed '1,${1b;d}')
mincol3=$(cut -d" " -f3 $monFichier | sort -n | sed '1,${1b;d}')
condition=$(awk -v var1="$mincol2" -v var2="$mincol3" '$2 != var1 && $3 < var2 {print "true"}' $monFichier)
echo "$"condition"
il m'affiche une ligne vide
j'ai testé avec $3>var2 : et là il m'affiche le résultat des lignes qui ne corresponds pas à ce que je cherche. genre si je prend l'exemple de mon tableau du départ il m'affiche la ligne y et z (true, true). complétement logique. mais quand je met $3<var2 là au lieu de m'afficher la ligne de x (true) il ne m'affiche rien( une ligne vide)
PS: true (ou "x 1 2 " si je mets $0 à la place de true)
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
29 janv. 2013 à 10:08
29 janv. 2013 à 10:08
le résultat de vérification si je met un echo $0 dans ma condition doit être:
x 2 3
car mincol3=3 et mincol2=2 et mincol3 doit être < mincol2 donc il y a que la ligne de x qui respecte cette condition.
Relis-toi bien ! Il n'y a aucune ligne dans ton fichier qui satisfait cette condition !
En gros, il n'y a aucun champ dans la colonne 3 qui soit inférieur au champ de la colonne 2.
x 2 3
car mincol3=3 et mincol2=2 et mincol3 doit être < mincol2 donc il y a que la ligne de x qui respecte cette condition.
Relis-toi bien ! Il n'y a aucune ligne dans ton fichier qui satisfait cette condition !
En gros, il n'y a aucun champ dans la colonne 3 qui soit inférieur au champ de la colonne 2.
poiuytreza01234567890
Messages postés
54
Date d'inscription
jeudi 17 janvier 2013
Statut
Membre
Dernière intervention
4 avril 2013
Modifié par poiuytreza01234567890 le 29/01/2013 à 10:13
Modifié par poiuytreza01234567890 le 29/01/2013 à 10:13
je voulais dire mincol3=3 et mincol2=4 (car le 2 doit être exclu lors du calcule de mincol2)
edit
edit
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
29 janv. 2013 à 10:18
29 janv. 2013 à 10:18
et mincol2=4 (car le 2 doit être exclu lors du calcule de mincol2)
Le problème c'est que mincol2 n'égalera jamais 4 ou autre puisque cette valeur est attribuée à 2.
Le problème c'est que mincol2 n'égalera jamais 4 ou autre puisque cette valeur est attribuée à 2.
poiuytreza01234567890
Messages postés
54
Date d'inscription
jeudi 17 janvier 2013
Statut
Membre
Dernière intervention
4 avril 2013
29 janv. 2013 à 10:26
29 janv. 2013 à 10:26
Je suis d'accord.
c'est pkoi je veux exclure cette valeur du calcule lors de la condition.
c'est pkoi je veux exclure cette valeur du calcule lors de la condition.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
29 janv. 2013 à 16:35
29 janv. 2013 à 16:35
Arrête de nous faire "rustiner" !
C'est très désagréable !
Ouvre un nouveau sujet (celui-ci est résolu), et expose ton projet dans sa totalité, pour qu'on en ait une vision complète, et qu'on te fournisse une solution globale.
Parce qu'on est partis, dans un précédent message, de deux colonnes, là, on est passés à trois colonnes.
La prochaine étape, c'est quoi ? Prendre en compte les données d'un autre fichier ?
On semble t'avoir confié une tâche bien compliquée pour ton si faible niveau en programmation.
C'est très désagréable !
Ouvre un nouveau sujet (celui-ci est résolu), et expose ton projet dans sa totalité, pour qu'on en ait une vision complète, et qu'on te fournisse une solution globale.
Parce qu'on est partis, dans un précédent message, de deux colonnes, là, on est passés à trois colonnes.
La prochaine étape, c'est quoi ? Prendre en compte les données d'un autre fichier ?
On semble t'avoir confié une tâche bien compliquée pour ton si faible niveau en programmation.
poiuytreza01234567890
Messages postés
54
Date d'inscription
jeudi 17 janvier 2013
Statut
Membre
Dernière intervention
4 avril 2013
Modifié par poiuytreza01234567890 le 29/01/2013 à 17:16
Modifié par poiuytreza01234567890 le 29/01/2013 à 17:16
Je ne vois pas où est le fichier de deux colonnes dans ce message !!
La tâche compliquée ou pas c'est moi qu'elle a créé. on me la pas confiée. j'ai posé des questions pour avoir des réponses ou s'abstenir pas pour juger les gens ou leur niveau, car ils le connaissent très bien.
Merci quand même
La tâche compliquée ou pas c'est moi qu'elle a créé. on me la pas confiée. j'ai posé des questions pour avoir des réponses ou s'abstenir pas pour juger les gens ou leur niveau, car ils le connaissent très bien.
Merci quand même
Modifié par poiuytreza01234567890 le 29/01/2013 à 16:26
à l'extérieur du awk.
car ce que, ce que je compte faire, c'est d'ajouter un else (et ce que je vais mettre dans mon else est hyper long"
genre :
if ..... faire ....
else faire ......