Bonjour à tous
Je commence en programmation shell et je compte bien aller loin par la grâce de Dieu et vous bien sûr.
Mais là je suis plutot perdue. Voilà. j'ai un ensemble de fichiers que je voudrais concatener dans un seul fichier avant d'effectuer mes traitements sur ce dernier. en debogguant mon script je me suis rendue compte que quand il finit de "cat" les fichiers dans le fichier destination celui ci se vide et recommence aussitot à se remplir. donc le script est en perpétuel déroulement ça fait comme une boucle en fait. je m'y prends probablement mal alors au secours

au depart il y a une comparaison de date pour que le systeme prenne la date du mois precedent

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
for DAY in $(seq -w 1 $jrdernier)
do
 
       r="$anneederniere$moisdernier$jrdernier"         
 
a=`date "+%Y"`      
b=$(date "+%Y%m" --date='1 month ago')    
 
m="titi"$r*15*.unl  
n="titi"$r*16*.unl  
 
cd /home/nash/reports/titi$a/$b;
 
cat $m|awk -F '|' 'length($6)== 11 && $6 ~ /^2[3]/ && $12 == '1' { print $0 }' > /home/nash/resultats/premiertotal_$b.txt
cat $n|awk -F '|' 'length($6)== 11 && $6 ~ /^2[3]/ && $12 == '1' { print $0 }' >> /home/nash/resultats/premiertotal_$b.txt
done
awk -F '|' '{arr[$6]+=$11} END {for(i in arr) {print i,arr[i]}}' /home/nash/resultats/premiertotal_$b.txt |sort -nrk 2 > /home/nash/resultats/totaltrie_$b.txt
j'ai voulu mettre le "done" juste après le changement de répertoire et je mets en commentaire la ligne de calcul, il affiche à peine le tiers du volume réel et donc le cumul est trop faible par rapport à celui du fichier final que j'obtiens quand je spécifie le chemin complet du répertoire, et par conséquent celui des fichiers pour chaque jour du mois. Mais c'est fastidieux et c'est un programme que je veux mettre en crontab.

Je ne sais si je me suis faite plus ou moins comprendre, merci d'avoir lu.