Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 wink


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne