optimiser "nettoyage" d'un fichier
Bonjour,
je cherche un moyen efficace pour "nettoyer" un fichier. (Article ---Nombre)
je parcours mon fichier. Si les 5 premieres lignes ont TOUS un nombre égal à 0, je vire ces lignes du fichier.
Ce que je fais pour le moment, c'est :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
#Nombre de lignes
COUNT=`cat $MyFile | wc -l`
#Nombre de fois que je dois répéter tout ceci
repeat=$(expr $COUNT / 5)
head -l 5 $MyFile > temp.txt
#"Nombre" commence à la colonne 21 du fichier texte
result=`awk ' {
printf ( "%s" , substr($0, 21, 20))
} ' temp.out | tr -d "0"`
if [ $result=="" ]
then
COUNT=$(expr $COUNT - 5)
tail -l $COUNT $MyFile > temp.txt
cat temp.txt > $MyFile
fi |
et puis répéter ceci $repeat fois ..
Ceci prend beaucoup de temps pour un fichier de 700000 lignes ..
surtout la partie du if ..
il doit surement y avoir un autre moyen de le faire..
qqn a une idée?? Merci