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 :
et puis répéter ceci $repeat fois ..
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
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
Partager