bonjour,

voici un script qui me pose bien des soucis

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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
 
#!/bin/ksh
 
 
#***************************************************************************
#* Parametres                                                              *
#***************************************************************************
#Variable :
NOW=`date +"%Y%m%d%H%M%S"`
#Arborescence serveur :
DIR=${HOME}/utils/Eric/ExtraireNOEMIE
DIR_LOG=${DIR}/log
DIR_RES=${DIR}/res
DIR_TMP=${DIR}/tmp
FIC_LOG=${DIR_LOG}/type00$NOW.log
FIC_ligne=${DIR_TMP}/lignefic$NOW.txt
 
 
# Element d'information Les structures NOEMIE d'identification
# Norme NOEMIE -- ENTITE ---000. 
type_000()   {    
  # echo $log
  #  echo "000"
  # NOE_TYE=`echo "${ligne}" | awk '{print substr( $0 , 4 , 2) }'`
    echo " extraction ENTITE ---000 ==  "  >> ${FIC_LOG}
 
    NOE_TYE=`echo "${ligne}" | cut -c 4-5`
 
    NOE_NUE=`echo "${ligne}" | cut -c 6-19`
    numemet=`echo "$ligne" | cut -c 6-19`
    NOE_NUE_000=`echo "${ligne}" | awk '{print substr( $0 , 6 , 14) }'`
 
       echo " en type 000 "
       echo "NOE_NUE:" ${NOE_NUE}
       echo "numemet:" ${numemet}
       echo "NOE_NUE_000:" ${NOE_NUE_000}
 
}
 
#***************************************************************************
#* Traitement                                                              *
#***************************************************************************
echo "Debut du script : " `date +"%d/%m/%Y %H:%M:%S"` > ${FIC_LOG}
echo " " >> ${FIC_LOG}
 
# Verification de la presence du parametre de lancement
if [ $# -ne 1 ];
  then
    echo " TEST000.ksh ==> Erreur : Veuillez entrer le nom du fichier a analyser  suivie du nom du fichier physique"  >> $log
    echo " TEST000.ksh ==  "  >> $log
    echo " TEST000.ksh ==> Fin extraction_NOEMIE "  >> $log
    echo " TEST000.ksh ==  "  >> $log
    exit 9
fi
 
 
# Acquisition du parametre
FIC_IN=$1
echo "TEST000"
 
 
#Extraction des données du fichier logique
while read ligne
 do
 
	NOE_TYP=`echo "${ligne}" | cut -c 1-3`
	NOE_NIV=`echo "${ligne}" | cut -c 4-5`
  	case $NOE_TYP in
	 000 ) 
    echo "Directe dans le cast"	 
    echo "${ligne}"
    NOE_NUE=`echo "${ligne}" | cut -c 6-19`	 
    echo "NOE_NUE:" ${NOE_NUE}
	 type_000;; 
 
	esac		   
done < $FIC_IN

Et voici le fichier "text" a analyser

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
000CP      01886600      ZU      8dd00294      QD014021401255689 000NU            000                                           
01001456544d@
000XC      01909000      ZU0000008cc00294      QRN01402140136688 000NU            000                                           
01001456544d@
000CP      01909000      ZU      8ee00294      QPN01402140146687 000NU            000                                           
01001456544d@
000XC      01909000      ZU0000008ff00294      QDN01402140156689 000NU            000                                           
01001456544d@
000CP      01909000      ZU0000008dd00294      QRN01402140116688 000NU            000                                           
01001456544d@
000XC      01909000      ZU0000008ee00294      QNN01402140116687 000NU            000                                           
01001456544d@
et donc on lancer nommer type000.ksh

avec comme paramètre le nom du fichier text


Pourquoi
le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
       echo "NOE_NUE:" ${NOE_NUE}
       echo "numemet:" ${numemet}
       echo "NOE_NUE_000:" ${NOE_NUE_000}
renvoi t'il comme valeur " 01886600" et non " 01886600" .
ou son donc passer les 6 caractères blanc en début de cette zone?
pourquoi y a t'il troncature de 5 caractères blanc pour les 6 présents.

LEs autres zones qui suivent sont aussi troncquer? why ? Help.