#1 Le 18/03/2021, à 12:18
- philoeil
[ RESOLU] retour dans "while.. read.." avec caractere inattendu,
Bonjour,
J'ai une erreur du à l'apparition de ce carctère " " dans mon retour :
Le fichier
~/Documents/JeCodeShell/TestCPCent/TestBoucleMir$ cat LFic_MD5_D_RLDD
/home/phil/Documents/JeCodeShell/ShellEssaiRepDblons/T6_Racine/T5_D3/T5_D3.2/T5_D3.2_F2Ori.JPG § 95960f0379ce775efd5ba1d7b393a4cb
/home/phil/Documents/JeCodeShell/ShellEssaiRepDblons/T6_Racine/T5_D3/T5_D3.2/Copie2_T5_D3.2_F2Ori.JPG § 95960f0379ce775efd5ba1d7b393a4cb
Le code reproduisant l'erreur et son resultat :
$ while IFS=" § " read CheminFichierRLDD ExamMD5
> do
> echo "$ExamMD5"
> done <LFic_MD5_D_RLDD
95960f0379ce775efd5ba1d7b393a4cb
95960f0379ce775efd5ba1d7b393a4cb
Pourquoi les caractères ?
Comment éviter ?
Merci
Dernière modification par philoeil (Le 18/03/2021, à 15:14)
Hors ligne
#2 Le 18/03/2021, à 12:22
- philoeil
Re : [ RESOLU] retour dans "while.. read.." avec caractere inattendu,
Je m'apperçois que le caractère décrit dans ma question ne s'affiche pas à l'écran
c'est un losange fond noir ? blanc en son centre vertical
Hors ligne
#3 Le 18/03/2021, à 13:02
- MicP
Re : [ RESOLU] retour dans "while.. read.." avec caractere inattendu,
Bonjour
Il se peut que les caractères que tu vois soient différents de ce qu'ils sont en réalité.
Si tu es toujours dans le répertoire /home/phil/Documents/JeCodeShell/TestCPCent/TestBoucleMir/
donne le retour de la ligne de commande suivante :
hd LFic_MD5_D_RLDD
Dernière modification par MicP (Le 18/03/2021, à 13:58)
Hors ligne
#4 Le 18/03/2021, à 13:54
- Hizoka
Re : [ RESOLU] retour dans "while.. read.." avec caractere inattendu,
Salut,
L'IFS ne prend pas une suite de caractère comme séparateur, chaque caractère est un séparateur.
Dans ton cas, le séparateur est soit un espace soit §.
Donc soit tu fait en sorte que ce ne soit plus " § " ton séparateur mais juste "§" ou tu splites ta ligne dans la boucle.
Dernière modification par Hizoka (Le 18/03/2021, à 13:55)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#5 Le 18/03/2021, à 14:11
- MicP
Re : [ RESOLU] retour dans "while.. read.." avec caractere inattendu,
Une autre solution, serait de copier/coller le caractère losange fond noir dans la variable IFS
de cette façon, il sera utilisé en tant que caractère séparateur et ne sera pas présent dans les retours de commande.
Mais si il est présent avant et après le caractère § ça fera trois champs dans chaque ligne au lieu de deux.
=======
Avec le retour de commande que je t'avais demandé,
on pourra récupérer la valeur hexadécimale de ce caractère
ce qui permettra de savoir de quoi il s'agit.
=======
Il me semble qu'il y a aussi un caractère (invisible ici) à la fin de chaque ligne du fichier LFic_MD5_D_RLDD
Toujours pareil : voir le retour de la ligne de commande que j'ai proposée.
Dernière modification par MicP (Le 18/03/2021, à 14:14)
Hors ligne
#6 Le 18/03/2021, à 14:47
- philoeil
Re : [ RESOLU] retour dans "while.. read.." avec caractere inattendu,
Bonjour,
Merci MicP
Ci-dessous le retour demandé :
~/Documents/JeCodeShell/TestCPCent/TestBoucleMir$ while IFS=" § " read CheminFichierRLDD ExamMD5 ; do echo "$ExamMD5"; done <LFic_MD5_D_RLDD
95960f0379ce775efd5ba1d7b393a4cb
95960f0379ce775efd5ba1d7b393a4cb
phil@phil-G750JH:~/Documents/JeCodeShell/TestCPCent/TestBoucleMir$ hd LFic_MD5_D_RLDD
00000000 2f 68 6f 6d 65 2f 70 68 69 6c 2f 44 6f 63 75 6d |/home/phil/Docum|
00000010 65 6e 74 73 2f 4a 65 43 6f 64 65 53 68 65 6c 6c |ents/JeCodeShell|
00000020 2f 53 68 65 6c 6c 45 73 73 61 69 52 65 70 44 62 |/ShellEssaiRepDb|
00000030 6c 6f 6e 73 2f 54 36 5f 52 61 63 69 6e 65 2f 54 |lons/T6_Racine/T|
00000040 35 5f 44 33 2f 54 35 5f 44 33 2e 32 2f 54 35 5f |5_D3/T5_D3.2/T5_|
00000050 44 33 2e 32 5f 46 32 4f 72 69 2e 4a 50 47 20 c2 |D3.2_F2Ori.JPG .|
00000060 a7 20 39 35 39 36 30 66 30 33 37 39 63 65 37 37 |. 95960f0379ce77|
00000070 35 65 66 64 35 62 61 31 64 37 62 33 39 33 61 34 |5efd5ba1d7b393a4|
00000080 63 62 20 0a 2f 68 6f 6d 65 2f 70 68 69 6c 2f 44 |cb ./home/phil/D|
00000090 6f 63 75 6d 65 6e 74 73 2f 4a 65 43 6f 64 65 53 |ocuments/JeCodeS|
000000a0 68 65 6c 6c 2f 53 68 65 6c 6c 45 73 73 61 69 52 |hell/ShellEssaiR|
000000b0 65 70 44 62 6c 6f 6e 73 2f 54 36 5f 52 61 63 69 |epDblons/T6_Raci|
000000c0 6e 65 2f 54 35 5f 44 33 2f 54 35 5f 44 33 2e 32 |ne/T5_D3/T5_D3.2|
000000d0 2f 43 6f 70 69 65 32 5f 54 35 5f 44 33 2e 32 5f |/Copie2_T5_D3.2_|
000000e0 46 32 4f 72 69 2e 4a 50 47 20 c2 a7 20 39 35 39 |F2Ori.JPG .. 959|
000000f0 36 30 66 30 33 37 39 63 65 37 37 35 65 66 64 35 |60f0379ce775efd5|
00000100 62 61 31 64 37 62 33 39 33 61 34 63 62 20 0a |ba1d7b393a4cb .|
0000010f
Hors ligne
#7 Le 18/03/2021, à 14:52
- philoeil
Re : [ RESOLU] retour dans "while.. read.." avec caractere inattendu,
Merci Hizoka
Je vais changer la gestion du séparateur, et traiter le blanc en début de retour de la variable.
Mais pour l'historique cela va être péniblement long si je me lance dans le changement de l'ensemble des parties du script impliqué.
Je reviendrai pour ma conclusion du problème quand terminé
Hors ligne
#8 Le 18/03/2021, à 15:13
- philoeil
Re : [ RESOLU] retour dans "while.. read.." avec caractere inattendu,
Re Merci Hizoka
c'est Ok, moins compliqué qu'envisagé
Hors ligne
#9 Le 18/03/2021, à 15:48
- MicP
Re : [ RESOLU] retour dans "while.. read.." avec caractere inattendu,
"20 c2 a7 20" ce sont bien deux caractères espace : un avant et un après le caractère §
et il y a aussi un caractère espace en fin de chaque ligne
Dernière modification par MicP (Le 18/03/2021, à 15:50)
Hors ligne
#10 Le 18/03/2021, à 16:49
- Hizoka
Re : [ RESOLU] retour dans "while.. read.." avec caractere inattendu,
Avec plaisir
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne