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 : Sélectionner tout - Visualiser dans une fenêtre à part
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