Extraire une valeur d'un fichier

Résolu
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   -  
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
bon mon problème est comme suit: je dois effectuer un script qui permet d'ouvrir un fichier et le lire ligne par ligne, en passant par ces lignes il doit verifier la 5ème colone et comparer sa valeur avec une variable fixé à un nombre donné s'il trouve que cette valeur est supérieur à celle fixée il affiche la colone suivante, voilà j'ai trop galéré mais sans resultat !! aidez moi!!
A voir également:

18 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,

awk me semble tout désigné pour cette tâche...
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
j l'ai deja testé!! bon voilà le code:
#!/bin/bash

a=` df -k | wc -l | tail -1 `
b=` df -k | awk '{print $5}' > quota.txt `
while read line
do
#echo $a
#echo $b
i= " 3% "
if [ $b -gt $i ] ;
then
c=` awk '{print $5}' `
echo $c
fi
$i=$(($i+1))
done < quota.txt
#echo $a
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Et juste comme ça :
df -h | awk 'NR == 1 { next } ; $5 > 3 { print $6 }'
C'est pas bon ?
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
dsl pr le retard, euuh je vais l'essayer et je te tiendrai au courant! merci bcp jipycy!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
de retour jipycy !! la commande ne marche pas !! :s
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
en fait j'ai refait le script autrement et là quand je vx comparer deux vaiables, y prend la 2ème variable pr une chaine de caractères! je m'explique quand je met awk ' $1<"3%" {print $2}' /home/teste.txt normalement y doit m'afficher les rep ki sont inferieur à ce quota, or il prend ts les rep dont leur quota commence par 1 ou 2 et s'en fiche du reste, mm si le quota est à 19% y l'affiche!!
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
parce que "3%" est traité comme un string, pas une valeur numérique.
je ferais
{x=$1 ; sub("%", "", $x); if ($x < 3) print $2 }
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
ok vais le tester et je te tiendrai au courant
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
slt dubcek j'ai testé le truc en vain , il econnait pas cette cmd, sub("%", "", $x)!! :s
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
essaye
{sub("%", "", $1); if ($1 < 3) print $2 }
quel awk as-tu ?
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
df -k | sed '1d' | awk '{print $3 " " $6}' > quota1.txt
voici la cmd qui permet l'extraction du 3ème et 6ème colonne!! depuis le resultat du df -k!!

bon voici la dernière tentative pour que je puisse comparer le seuil av le taux d'occupation du rep :
#!/bin/bash
df -k | sed '1d' | awk '{print $3 " " $6}' > quota1.txt
num=` cat /home/stage/logs/quota1.txt | wc -l `
echo $num
seuil=74292
for i in num
do
if [ $num < 74292 ];
then
echo " Alert"
fi
done

le problème c'est qui passe pas par le if

mercii bien
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
if [ "$num" -lt 74292 ];
Par contre je ne vois pas le rapport entre le nombre de ligne (wc -l) du fichier quotat1.txt et le seuil ? ;-\
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
ouiii voilà le wc -l je l'ai mis pr compter le nombre de lignes du fichier quota1.txt, afin de l'utiliser pr que je puisse compter le nombre de ligne du fichier et passer de ligne par ligne ( ca remplace en fait la boucle while read line)

je vais essayer le truc et je te tiendrai au courant!!

mercii bcp pr ton aide
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
bon je décrit mieux le pb:j'ai fait un script sous shell, dans le quel j'envoie le résultat d'une commande vers un fichier, mnt je voulais parcourir ce fichier ligne par ligne et comparer le résultat de chaque ligne par une variable que j'ai déjà déclaré,s'il est inférieur a cette variable j'affiche la colonne qui suit,j'ai essaye avec plusieurs programmes mais ça marche pas,

aidez moi SVP , c urgent.

merci d'avance.


ps: le programme est sous shell ( bash)
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
slt jipicy!! ouii j'ai vu ce tuto que tu as posté!! et j'ai déja essayé mais ss pas arrivée à l'adapter av mon programme!! :s
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Fais-moi plaisir et essaye ça :
df -k | awk 'NR == 1 { next } ; $3 < 74292  { print $6" Alerte !!!" }'
et dis-moi ce qu'il en est...
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
ok chef!! j'essaie et je te tiens au courant tt de suite!
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
mercii jipicy! t mon sauveteur!! ca marche nickel!! merci bcp bcp bcp
0