J'ai une boucle sur une liste de fichier ayant un numero dans leurs nom
(mon_fichier_XXX)
J'aimerais tourne seulement sur une moitiee des fichiers et donc faire un test sur le numero (ici XXX )
voila ce que j'ai fait
#!/bin/sh
[..]
filenum= echo $fileTrig |awk -F '_' '{print $4}' | awk -F '.' '{printf $1}'
echo $filenum # me sort le bon numero
numb=$(($filenum)) # passe le numero dans une variable numerique
if [ "$numb" -le 250 ]; then
echo "OK" $numb
fi
Pour toute les valeurs de XXX il me sort
OK 0
le prog met donc $numb a 0 et si je passe directement par $filenum j'ai droit a des erreurs de integer/string
si quelqu'un a une idee c'est genial
Merci
# pourquoi ?
Posté par Wedge . Évalué à 1.
ta variable $filenum doit logiquement suffire, l'interpréteur devinera tout seul qu'il s'agit d'une variable numérique
[^] # Re: pourquoi ?
Posté par Mais qui suis-je ? :) . Évalué à 1.
[: : integer expression expected
(avec if [ "$filenum" -le 250 ]; )
Le passage par num est la seule solution que j'ai trouvee pour eviter cette erreur
# awk peut le faire tout seul ...
Posté par totof2000 . Évalué à 3.
[..]
filenum= echo $fileTrig |awk -F '_' '{print $4}' | awk -F '.' '{printf $1}' # pourquoi awk | awk?
echo $filenum # me sort le bon numero
numb=$(($filenum)) # passe le numero dans une variable numerique
if [ "$numb" -le 250 ]; then
echo "OK" $numb
fi
A mon avis tu peux t'en sortir avec awk et la fonction split ou sub
un truc comme ca:
Pas testé mais si tu me donne trois ou quatre exemples de fichiers ....
[^] # Re: awk peut le faire tout seul ...
Posté par totof2000 . Évalué à 2.
si tu obtiens ta liste de fichier à l'aide d'un for, tu n'es plus obligé de le faire:
ls <options de selection> | awk -F '_' '{
split ($4,out,".")
if (out[2] <250) {
print "OK " out[2]
}
}'
[^] # Re: awk peut le faire tout seul ...
Posté par Mais qui suis-je ? :) . Évalué à 1.
pour le split
D'accord ca simplifie les choses merci au moins pour ca ...
Par contre le test et le print dans le awk c'est pas vraiement ce que je veux faire
pour l'instant mon print OK a juste pour but de verifier que ca marche ...
avant d'envoyer d'autre commande par derriere...
Quoi que je peux toujours en faire une uttilisation detournee
[^] # Re: awk peut le faire tout seul ...
Posté par totof2000 . Évalué à 2.
sinon comme tu dis il y a aussi l'utilisation détournée.
# sed, ton ami
Posté par Dabowl_92 . Évalué à 2.
# chaine vs entier
Posté par peck (site web personnel) . Évalué à 2.
[ $num -le 250 ] suffirait
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.