Le 09/02/2020 à 15:16, guilde.nt@??? a écrit :
> Quoting anne.guilde@???, Sun 9 Feb 2020, 03:05 +0100 CET :
>> exemple de fichier
>> ---BEGIN:VCARD
>> (...)
>> le résultat :
>> FN:Aprenom5 Anom5;1
>> FN:Aprenom4 Anom4;3
Merci pour vos
Bon j'ai fait en bash
---
#!/bin/bash
# set -x
fichier=$1
# Chaque ligne de fichier1 a cette forme :
# texte1:texte2\r
# \r = retour chariot
# Si la ligne n'est pas de la forme texte1:texte2\r, c'est l'encodage
d'une photo
declare -a tableau
while IFS=$':\r' read debut_lig fin_lig suite_lig
do
# BEGIN = première linge du contact
if [[ $debut_lig = "BEGIN" ]] ; then
numtel=0
index=0
fi
# END = dernière ligne du contact
if [[ $debut_lig = "END" ]] ; then
tableau=("${tableau[@]}" "$numtel")
echo ${tableau[@]}
unset tableau
fi
# Ananyle les lignes entre BEGIN et END
if [[ $debut_lig != "BEGIN" ]] && [[ $debut_lig != "END" ]] ; then
if [[ -n $fin_lig ]] ; then
# Ajout de l'entrée dans le tableau
# Si l'entrée = FN, c'est le nom du contact.
if [[ $debut_lig = "FN" ]] ; then
tableau=("${tableau[@]}" "$fin_lig; ")
let index++
fi
# compter le nombre de ligne qui commence par TEL dans une vcard
if [[ $debut_lig =~ ^TEL* ]] ; then
let numtel++
fi
fi
fi
done < $fichier
---
Anne