Je vais tenter d'expliquer clairement mon problème,
Déjà je suis sur une mandriva.
J'ai réussi à récupérer un nombre compris entre 0 et 99 je n'avais pas prévu le cas ou ce dernier serait supérieur ou égale à 100.
Voici le type de réponse que je récupére rep.txt :
dazdzad4484481484ef4ef4 5
cczecezcec15151544d4e4 45
czecececec5114844vvzec4ec1c4e4c 89
4e84e8c7ze4c7ez4c74df74fze4f 122
5114414741174174114 75
Voici la partie du script concerné :
do
#On traite les données
port[$i]=${ligne: -2}
i=`expr $i + 1`
done < rep.txt
Comme vous pouvez le constater je récupérer juste les deux derniers caractères ce qui est insufisant, et je ne peus me permettre dans récupérer trois vue qu'aprés je compare ces derniers.
Je pensai donc remplacer l'espace par deux espace avec la fonction sed, je ne l'ai jamais utiliser et j'avous avoir beaucoup de mal ...
donc voici le script que je pensai mettre en place :
sed -e `s/ / /g` -i rep.txt
i=1
do
#On traite les données
port[$i]=${ligne: -3}
i=`expr $i + 1`
done < rep.txt
Et la c'est le drame je suis obligé de retirer le -e commande inconnu, ensuite j'ai un"sed: impossible de lire -: Aucun fichier ou répertoire de ce type"
Je dois mal interpréter le sed .... si quelqu'un peut m'aider ce serait vraiment sympa ;)
Il y a peut être même certainement une autre solution auquel cas je suis à l'écoute.
Merci d'avance. Un noob qui veut progresser :p
# Quotes
Posté par Toto . Évalué à 2.
[^] # Re: Quotes
Posté par sdk . Évalué à 1.
mdrr
En faite mon sed fonctionne niquel :), merci ;) quel idiot je fais.
Je vais tester voire ce que ca donne.
i=1
do
#On traite les données
port[$i]=${ligne: -2}
if port[$i]==[00-99]; then
port[$i]=${ligne: -3}
i=`expr $i + 1`
done < rep.txt
Hum je sais pas si vous voyez le résonnement que je cherche à avoir si par exemple j'ai 2 chiffres présent dans port[$i]=${ligne: -2} alors je peus prendre les trois derniers caractères de la lignes ... si quelqu'un voit une solutions avec cette façon ;)
je ne tente même pas ce que j'ai écris ci dessus sachant que c'est totalement faux :p et je ne vois pas trop le moyen de vérifier la présence de 2 chiffres, ou d'exclure la présence d'un espace.
Merci ;)
# awk
Posté par Amand Tihon (site web personnel) . Évalué à 3.
[^] # Re: awk
Posté par sdk . Évalué à 1.
Merci ;) Un acquis de plus.
[^] # Re: awk
Posté par sdk . Évalué à 1.
Merci ;) Un acquis de plus.
[^] # Re: awk
Posté par ecid . Évalué à 2.
cut -d' ' -f2 fichier
Pour info, j'ai dupliqué tes lignes jusqu'à en faire un fichier de 120Mo, et la commande awk prend en moyenne 6.8s à comparer à la commande cut, qui boucle tout en 1.5s
[^] # Re: awk
Posté par sdk . Évalué à 1.
merci ;)
Surtout que ce n'est pas un petit fichier.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.