Bonjour,
Je voudrais écrire un script shell qui pour tous les fichiers de format .txt se trouvant dans un répertoire donné, on doit :
1. regarder si le fichier contient « Version : »,
2. alors on compte le nombre de ligne (nb_ligne) qu'il contient excepté la première et la dernière
3. puis on le concaténer dans un fichier et enfin on enrichie un fichier log (nb-ligne, date, fichier) et on déplace le fichier dans répertoire-traiter.
4. sinon (le fichier ne contient pas version) on le déplace dans répertoire-erreur
Exemple de fichier correct:
E;E;E;E
1;2 ;3 ;3
2;3 ;3 ;5
1;2 ;2 ;5
Version :
On doit concaténer dans all_file.txt avec nb_ligne=3 faire un fichier log
On le copie dans fichier correct
1;2 ;3 ;3
2;3 ;3 ;5
1;2 ;2 ;5
Exemple de fichier incorrect:
E;E;E;E
1;2 ;3 ;3
2;3 ;3 ;5
1;2 ;2 ;5
On le déplace dans le répertoire erreur en renseignant le log
TROUVE=0
Début
for fichier in *.TXT do
echo $fichier
echo grep -v "^$" $fichier | wc -l
if [ $? -eq $TROUVE ] then
$nombre_fichier=wc -l $fichier
nomfichier=$fichier
cp $nomfichier $CHEMIN/rep_traiter/
cat $nomfichier > $CHEMIN/rep_operats/FTIERS_ALL.txt
let "nombre_fichier += 1"
else
mv $nomfichier $CHEMIN/rep_erreurs/$nomfichier
fi
done
Merci de lire ce post