Я экспортировал файл vcard (* .vcf) из моих контактов в Google.Теперь я хотел бы извлечь информацию из FN: (полное имя) и любую информацию об адресе электронной почты (EMAIL * или любую строку с @).Я дал рубину, питону и ударил.Самым многообещающим до сих пор был подход с bash.Вот скрипт, который у меня есть от Github , но он не работает должным образом.Я считаю, что это останавливается, когда FN: информация недоступна, что происходит примерно с 50 записями в конце файла vcard.Я все еще хотел бы информацию об адресе электронной почты, которая может быть в поле «Примечание» или даже где-то еще.Вот сценарий:
#!/bin/bash
vcard_file=$1
cat $vcard_file | while read line ; do
#echo $line;
if [ "$line" == "BEGIN:VCARD" ]; then
#echo $line;
full_name="";
email="";
fi
if [[ $line = EMAIL* ]]; then
if [ -z $email ]; then
email=${line#*:}
# echo EMAIL : $email;
fi
fi
if [[ $line = FN:* ]]; then
full_name=${line#*:}
# echo FULL_NAME : $full_name;
fi
if [ "$line" == "END:VCARD" ]; then
# email 이 존재한다면.
if [ $email ]; then
echo -e "$full_name\t$email"
fi
fi
done
Я вызываю сценарий с помощью:
bash scritpname contacts.vcf > output.txt
Вот одна запись vcard, которая работает:
BEGIN:VCARD
VERSION:3.0
FN:Agathe Strohmeier
N:Strohmeier;Agathe;;;
EMAIL;TYPE=INTERNET:agathe@example.com
TEL;TYPE=CELL:+49123456789
TEL;TYPE=CELL:123456789
TEL;TYPE=CELL:+123456789
NOTE:Anzeigename\: Agathe \nPrimäre E-Mail-Adresse\: agathe.strohmeier@example.com\n
END:VCARD
Из следующегоvcard Я не получаю никакой информации, потому что нет ключевого слова EMAIL.Я все еще хотел бы извлечь строку с информацией @ и поместить где-нибудь тэг "No Fullname".Эта запись vcard не содержит полного имени или информации электронной почты, но есть строка с адресом электронной почты, который я хотел бы извлечь:
BEGIN:VCARD
VERSION:3.0
NOTE:Anzeigename\: Dennis@uni.de\nPrimäre E-Mail-Adresse\: Otieno@uni.de\n
END:VCARD
Я нахожусь в Linux Mint, поэтому доступны все инструменты командной строки.Любой гугл фу был безрезультатным.Надеюсь, я дал понять, что я пытаюсь сделать.Я также открыт для других подходов, возможно, предварительно обработав файл contacts.vcf.Спасибо за ваше время и счастливую картину