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 09/02/2018, à 14:37

MichelZ

[Résolu] Ne trouve pas le caractère "retour chariot" dans un fichier

Bonjour,
Dans un shell, je veux récupérer des données d'un fichier .vcf, par exemple le nom du contact, il est contenu entre la chaine "FN:" et la fin de la ligne, exemple :

BEGIN:VCARD
VERSION:2.1
N:;Gérard;;;
FN:Gérard
TEL;CELL:06 99 06 99 06
END:VCARD
BEGIN:VCARD
VERSION:2.1
N:F;Claude;;;
FN:Claude
TEL;CELL:01 99 01 99 01
END:VCARD

Je fais donc :

a=$(</home/x/Bureau/Smartphone/2018-02-07/Contact/contact.vcf)
a=${a#*FN:}; b=${a%%\r*}

Ça ne marche pas : il fait bien la 1ère commande (partie droite de "FN:") mais ensuite ne coupe pas à la fin de la ligne mais sur le 1er caractère "r" qu'il trouve.
Pourtant j'ai vérifié le contenu du fichier en hexa, y a bien \0d \0a en fin de chaque ligne.

Dernière modification par MichelZ (Le 09/02/2018, à 16:04)

Hors ligne

#2 Le 09/02/2018, à 15:31

credenhill

Re : [Résolu] Ne trouve pas le caractère "retour chariot" dans un fichier

hello
remplacer \r par $'\r'

a=${a#*FN:}; b=${a%%$'\r'*}

Hors ligne

#3 Le 09/02/2018, à 15:45

bruno

Re : [Résolu] Ne trouve pas le caractère "retour chariot" dans un fichier

Salut,

j'aurais dit :

${a%%[$'\r\n']*}

sinon, il serait peut-être aussi simple de lire le fichier ligne par ligne.

En ligne

#4 Le 09/02/2018, à 16:02

MichelZ

Re : [Résolu] Ne trouve pas le caractère "retour chariot" dans un fichier

Super, ça marche ! Merci à tous les 2.
Lire le fichier ligne par ligne ? J'y ai pensé mais je ne veux récupérer que les champs "FN" et "TEL" donc ça m'obligerait à faire une sélection derrière...

Hors ligne