Mes solutions sont des exemples à adapter : il peut y avoir des petites coquilles à corriger car je ne sais pas exactement de quoi tu pars et car je fais ça vite fait 
Et surtout, surtout, à ne pas lancer tel quel : si jamais tu perds des fichiers car j'ai fait une erreur, ça serait dommage ! Il faut que tu comprennes ce qui est fait avant !
En l’occurrence, je pense que c'est assez simple :
201105191349_DAIDWR.old.Z: No such file or directory
>> le fichier n'est pas trouvé...
Si on regarde le code, l'endroit où le fichier old est utilisé, c'est le zcat :
zcat $ficold | awk '{if (/30076.*2019/ || /10468.*2240/ || /1010.*8096/) {$0=substr($0,1,4) "'$idmois'" substr($0,11)} print}' > $ficnew
J'ai mis zcat $ficold, or, zcat ajoute automatiquement une extension lorsqu'il n'y en a pas qui correspond à un fichier compressé, c'est pour ça qu'il te dit qu'il ne trouve pas 201105191349_DAIDWR.old.Z. J'ai juste oublié d'ajouter cette extension au nom .old. Une autre solution si les fichiers sont déjà avec une extension .Z, c'est de ne pas mettre le suffixe .old et de se contenter d'ajouter le timestamp devant.
1 2 3 4 5 6 7 8 9
| ...
while read fic
do
ficold=$(date +%Y%m%d%H%M)_${fic}.old.Z
# ou ficold=$(date +%Y%m%d%H%M)_${fic}
ficnew=${fic%%.*} # ou ficnew=$(basename $fic ".gz") selon les noms en entrée
mv $fic $ficold
zcat $ficold | awk '{if (/30076.*2019/ || /10468.*2240/ || /1010.*8096/) {$0=substr($0,1,4) "'$idmois'" substr($0,11)} print}' > $ficnew
done < lst_fic_so.txt |
Partager