Nom du script: ident
Compatible avec: Bash
Descriptif: extraction de données
Pré-requis: aucun
Code:
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
78
79
80 #!/bin/ksh #*************************************************************************** #* Parametres * #*************************************************************************** #Variable : NOW=`date +"%Y%m%d%H%M%S"` #Arborescence serveur : DIR=${HOME}/utils/ID_doublon DIR_LOG=${DIR}/log FIC_LOG=${DIR_LOG}/identific_doublon_$NOW.log DIR_SQL=${DIR}/sql FIC_RES=${DIR}/donnees_fichier_doublon.csv $i=0 # Verification de la presence des parametres de lancement if [ $# -ne 1 ]; then echo " ==> Veuillez entrer le nom du fichier a analyser suivi de la norme " >> $log exit 9 fi # Acquisition des parametre FIC_IN=$1 echo "Demarrage de la mise au format du flux " >> ${FIC_LOG} rm CodeSQL_*.sql echo "Fichier :"$FIC_IN while read Ligne_FIC_IN; do #echo $Ligne_FIC_IN #extraction des donnees de la ligne de type 000 echo $Ligne_FIC_IN > typ000.txt entite=`cut -c 1-3 typ000.txt` #echo "ENTITE-->"$entite if [ $entite == "000" ]; then echo "Ligne_FIC_IN :"$Ligne_FIC_IN numemet=`cut -c 6-19 typ000.txt` echo "numemet: "$numemet numdest=`cut -c 28-41 typ000.txt` typapp=`cut -c 48-49 typ000.txt` normeps=`cut -c 62-64 typ000.txt` else niveau=`cut -c 4-5 typ000.txt` if [ $entite == "999" ]; then echo "FIN de fichier-->"$entite else if [ $entite == "990" ] && [ $niveau == "02" ]; then #echo "ENTITE-->"$entite"/"$niveau noecpt=`cut -c 23-30 typ000.txt` noecum=`cut -c 31-41 typ000.txt` #creer le fichier de sortie sql else if [ $entite == "010" ]; then mut010=`cut -c 6-13 typ000.txt` fi if [ $entite == "007" ] && [ $niveau == "02"]; then jcodate=`cut -c 6-11 typ000.txt` fi fi fi fi done < $FIC_IN echo "Fin de la mise au format du flux " > ${FIC_LOG} echo " " >> ${FIC_LOG} echo "Fin du script : " `date +"%d/%m/%Y %H:%M:%S"` >> ${FIC_LOG}
------------------------------------------------
résultat
soit le Fichier :fic2.err fichier utilisé avec comme contenu:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 000MA 02241000B65D05MU00000055222333 RP 091015687 000NU 128 201509 0100155222333@ 07002020915@ 150111111111@
pourquoi sur la commande "
",
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 while read Ligne_FIC_IN; do echo $Ligne_FIC_IN .... done < $FIC_IN
on passe du texte suivant :
a ce text
Code : Sélectionner tout - Visualiser dans une fenêtre à part 000MA 02241000B65D05MU00000055222333 RP 091015687 000NU 128 201509
Code : Sélectionner tout - Visualiser dans une fenêtre à part 000MA 02241000B65D05MU00000055222333 RP 091015687 000NU 128 201509
pourquoi des espaces disparaissent ?????
Partager