Bonjour,
svp j'aurai besoin d'aide sur un script ksh.
j'ai des fichiers sous cette formes :
parmi ces fichiers par exemple je dois déplacer ceux qui ont une combinaison incorrect dans un répertoire poubelle.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
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 :
mais malheureusement quand j'exécute le script, ce dernier déplace tous les fichiers ...Code:
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
quelqu'un peut m'aider sur ce script svp ?
Merci