Deux conditions sur un fichier de 3 colonnes
Résolu
poiuytreza01234567890
Messages postés
54
Date d'inscription
Statut
Membre
Dernière intervention
-
poiuytreza01234567890 Messages postés 54 Date d'inscription Statut Membre Dernière intervention -
poiuytreza01234567890 Messages postés 54 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
voilà, j'ai un fichier qui contient 3 colonnes
Nom1 valeur1 valeur''1
Nom2 valeur2 valeur''2
Nom3 valeur3 valeur''3
. . .
. . .
voilà ce que je veux faire:
si $2 de ligne courante=min de $2 et $3 de ligne courante=min de $3 afficher la ligne entière.
voici le script que j'ai fais:
minMin=$(cut -d" " -f2 $dirFichierInitiale | sort -n | sed '1,${1b;d}') #minimum de la troisième colonne
minMax=$(cut -d" " -f3 $dirFichierInitiale | sort -n | sed '1,${1b;d}') #minimum de la deuxième colonne
condition=$(awk -v min="$minMin" -v max="$minMax" '$2 == min $3 == max {print $0}' $dirFichierInitiale)
echo "$condition"
mais ca ne marche pas il y a une erreur de type:
awk: cmd. line:1: $2 == mini $3 == NNT {print $0}
awk: cmd. line:1: ^ syntax error .
Merci par avance pour vos corrections.
voilà, j'ai un fichier qui contient 3 colonnes
Nom1 valeur1 valeur''1
Nom2 valeur2 valeur''2
Nom3 valeur3 valeur''3
. . .
. . .
voilà ce que je veux faire:
si $2 de ligne courante=min de $2 et $3 de ligne courante=min de $3 afficher la ligne entière.
voici le script que j'ai fais:
minMin=$(cut -d" " -f2 $dirFichierInitiale | sort -n | sed '1,${1b;d}') #minimum de la troisième colonne
minMax=$(cut -d" " -f3 $dirFichierInitiale | sort -n | sed '1,${1b;d}') #minimum de la deuxième colonne
condition=$(awk -v min="$minMin" -v max="$minMax" '$2 == min $3 == max {print $0}' $dirFichierInitiale)
echo "$condition"
mais ca ne marche pas il y a une erreur de type:
awk: cmd. line:1: $2 == mini $3 == NNT {print $0}
awk: cmd. line:1: ^ syntax error .
Merci par avance pour vos corrections.
A voir également:
- Deux conditions sur un fichier de 3 colonnes
- Fichier bin - Guide
- Comment faire deux colonnes sur word - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
9 réponses
Je n'ai pas bien compris!!
if [ "$condition" = true ]; then ....
pkoi il va considéré true comme un mot
c'est quoi alors true en bash?
Merci
if [ "$condition" = true ]; then ....
pkoi il va considéré true comme un mot
c'est quoi alors true en bash?
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
une chaine de car. n'est pas vraie ou fausse, elle vide ou pas. si elle n'est pas vide, on peut comparer son contenu et le résultat de cette comparaison est vrai ou faux.
en numérique 0 est faux, sinon vrai.
que retourne awk ?
en numérique 0 est faux, sinon vrai.
que retourne awk ?
Il ne retrouve rien justement en mettant ce que j'ai mis.
maintenant j'ai compris. Merci encore.
en fait ce que je veux faire:
si la condition est réalisé: (condition=$(awk -v min="$minMin" -v max="$minMax" '$2 == min $3 == max {print $0}' $dirFichierInitiale) )
faire le traitement machin....
j'ai essayé de mettre :
if [ awk -v min="$minMin" -v max="$minMax" '$2 == min $3 == max {print $0}' $dirFichierInitiale)=true; then faire le traitement machin break fi;
mais ca ne marche pas.
maintenant j'ai compris. Merci encore.
en fait ce que je veux faire:
si la condition est réalisé: (condition=$(awk -v min="$minMin" -v max="$minMax" '$2 == min $3 == max {print $0}' $dirFichierInitiale) )
faire le traitement machin....
j'ai essayé de mettre :
if [ awk -v min="$minMin" -v max="$minMax" '$2 == min $3 == max {print $0}' $dirFichierInitiale)=true; then faire le traitement machin break fi;
mais ca ne marche pas.
tu peux faire
condition=$(awk -v min="$minMin" -v max="$minMax" '$2 == min && $3 == max {print "true"}' $dirFichierInitiale) ) if [ "$condition" = "true" ]; then
Merci. c'est vraiment gentil!
Je suis vraiment débutante en bash.
Je profite pour poser une autre question:
En python par exemple:
Je commence une boucle comme ça (à l'infini aprés je met un petit break pour sortie):
while (1=1): faire des traitements
if condition=True:
print quelquechose
break
en bash comment l'écrire ce "while (1=1)"
Merci par avance.
Je suis vraiment débutante en bash.
Je profite pour poser une autre question:
En python par exemple:
Je commence une boucle comme ça (à l'infini aprés je met un petit break pour sortie):
while (1=1): faire des traitements
if condition=True:
print quelquechose
break
en bash comment l'écrire ce "while (1=1)"
Merci par avance.