Bonjour,
svp j'aurai besoin d'aide sur un script ksh.
j'ai des fichiers sous cette formes :
HST_HST35G02_EDP_R0+45_G02R00C00_5909_I1523254.DATAE00
HST_HST35G02_EDP_H5+63_G02R00C00_5799_I1600063.DATAE00
HST_HST35G02_EDP_Q2+44_G02R00C00_5801_I1500213.DATAE00
HST_HST35G02_EDP_T1+31_G02R00C00_5801_I1500213.DATAE00
HST_HST35G02_EDP_R0+14_G02R00C00_5801_I1500213.DATAE00
parmi ces fichiers par exemple je dois déplacer ceux qui ont une combinaison incorrect dans un répertoire poubelle.

dans mon script j'ai déclarer un tableau qui contient toutes les combinaisons correctes, ensuite j'ai fait une boucle pour le parcourir et parcourir les fichiers que je veux traiter et une condition qui permet de détecter les fausses combinaison et les déplacer :

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
21
#!/bin/ksh
DRCFR="1G+91 2G+93 3G+91 4G+94 A0+59 B2+33 C0+54 E0+21 F4+59 H3+63 H5+07 J1+83 J2+83 J4+07 K2+34 L1+54 M1+44 N2+45 P0+33 Q2+35 R0+14 S0+21 T1+31 U1+77 U2+79 U3+74 U6+78 W4+77"
set -A TABDRCFR $DRCFR
FICREPEDP=$(find /data/flf/35gchg/files/rejetChg/incft_HST/ -type f | grep "HST_HST35G02_EDP")
set -A TABFICREPEDP $FICREPEDP
i=0
for FICEDP in ${TABFICREPEDP[@]}
do
while [ $i -lt ${#TABDRCFR[@]} ]
do
affichEDP=`ls $FICEDP | cut -c60-64`
if [ $affichEDP != `echo ${TABDRCFR[$i]}` ]
then
mv $FICEDP /data/flf/35gchg/files/rejetChg/pcr_poubelle_HST/
else
echo OK
break
fi
i=$((i+1))
done
done
mais malheureusement quand j'exécute le script, ce dernier déplace tous les fichiers ...
quelqu'un peut m'aider sur ce script svp ?

Merci