Re: fichier vcard

Page principale

Répondre à ce message
Auteur: Jérôme Villafruela
Date:  
À: guilde
Sujet: Re: fichier vcard
Le 04/12/2017 à 14:54, anne.guilde@??? a écrit :
> vi vi
> La première étape est faite depuis longtemps
>
> Mon but c'est de récupéré toutes les entrées pour modifier les
> programmes php que m'a filé Jérôme Villafruela
> https://github.com/thomascube/vcfconvert
>
> ---
> #!/bin/sh
>
> fichier='/media/anne/home/anne/Documents/anne/papiers/vdard/Contacts_006.vcf'
>
>
> while read line; do echo $line; done < $fichier
> ---
>
> Maintenant il faut que je trouve comment on analyse ce qu'il y a dans
> $line
>

L'utilisation de awk proposée par Nicolas est de loin la plus simple, en
élaborant sa solution :

BEGIN {
    FS = ":"
    #séparer les champs en sortie par une tabulation
    OFS ="\t"
    #headers
    print "name","firstname","telwork","telhome","telcell"
}

#nouveau contact
/^BEGIN:VCARD/ {
    name = ""
    firstname = ""
    telhome = ""
    telwork = ""
    telcell = ""
}

/^N:/  { name=$2 }
/^FN:/ { firstname=$2 }
/^TEL;CELL:/ || /^TEL;X-CellularVoice:/ { telcell=$2 }
/^TEL;WORK:/ || /^TEL;X-WorkVoice:/     { telwork=$2 }


#fin de contact
/END:VCARD/ {
    print name,firstname,telwork,telhome,telcell
}

1 {print $1 >"/dev/stderr"}



Utilisation :

Copier le script dans un fichier vcard2csv.awk
Exécuter :
awk -f vcard2csv.awk <contacts.vcf >contacts.csv

Tutoriel sur l'outil : https://www.shellunix.com/awk.html

Bonne soirée,

Jérôme