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