Bonjour,
N'étant pas "un professionnel" des commandes shell/unix je vous expose mon problème en espérant être assez clair.
J'écris un script qui lit un fichier en entrée pour récupérer une zone ($7) puis je souhaite scripter cette zone et recopier le fichier en entrée dans un nouveau fichier avec cette même zone mise à jour (scriptée).
Mais je rencontre le message suivant dans mon script shell :
awk: Field is not correct.
The input line number is 1.
The source line number is 1.
Voici mon script :
-------------------
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 vCheminFXOT=/fic/stbc${instance}/00Y/FXOT vFicOut=${vCheminFXOT}/FicEntree.csv echo $vFicOut cat ${vFicOut} | while read ligne do echo "Ligne : " $ligne matricule=`echo $ligne | awk -F"\|" '{print $7}'` echo "matricule : " $matricule cryptage=$(printf $matricule | openssl dgst -binary -sha256 | openssl base64) echo "cryptage : " $cryptage echo $ligne | awk -F"|" 'BEGIN{OFS="|"} {$7=$cryptage} {print $0}' >> FicSortie.csv echo "Ligne MAJ : " $ligne done exit
Exemple de ligne dans mon fichier et ce que je souhaite ==> cryptage
------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Ligne : 01.00.00|BCMP_A|C_ACCUEIL_PHYSIQUE|NC||170817|1234567899999|19620902|1|54|NC|M|691|01|1234567899999|19620902|1|54|NC|M|CONTACT|CONTACT|NC|NC|3452755690|NC matricule : 1234567899999 cryptage : AwOnndlQG77RqLrHEXr3NiuCef+DAjca2cEip6f2zxE=
Auriez-vous une idée ?
Merci pour votre aide...
Partager