Last active
August 29, 2015 14:08
-
-
Save sechiro/99c2b924977f8ce43c75 to your computer and use it in GitHub Desktop.
Googleからエクスポートしたvcf形式のアドレス帳のふりがなをGratinaで読み込めるよう変換するスクリプト
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# Googleからエクスポートしたvcf形式のアドレス帳のふりがなをGratinaで読み込めるよう変換するスクリプト | |
# 変換元ファイルは以下の手順でエクスポートしてください。 | |
# Gmail -> 連絡先 -> その他 -> エクスポート-> vCard 形式(Apple アドレスブックやその他のアプリケーションへのインポート用) | |
# | |
# Usage: bash addressbook-convert.sh [input_file(default:contacts.vcf)] [output_file(default:contacts-converted.vcf)] | |
# | |
set -ue | |
input_file=${1:-contacts.vcf} | |
output_file=${2:-contacts-converted.vcf} | |
cp $input_file $output_file | |
SEION='アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン' | |
HIRA_SEION='あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをん' | |
KIGOU='〜ー' | |
H_SEION='アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン' | |
H_KIGOU='~ー' | |
YOUSOKUON='ッァィゥェォャュョ' # 半角には「ヮ」は存在しないため変換不可 | |
HIRA_YOUSOKUON='っぁぃぅぇぉゃゅょ' # 半角には「ヮ」は存在しないため変換不可 | |
H_YOUSOKUON='ッァィゥェォャュョ' | |
# 濁音、半濁音は清音と濁点、半濁点の二文字になるため、先に清音+濁点に変換 | |
DAKUON='ヴガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポ' | |
HIRA_DAKUON='ゔがぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽ' | |
SEION_PART='ウカキクケコサシスセソタチツテトハヒフヘホハヒフヘホ' | |
# forループに渡すため、一文字ずつ分解 | |
DAKUON_SPLIT=`echo $DAKUON $HIRA_DAKUON|fold -w1` | |
for letter in $DAKUON_SPLIT | |
do | |
# Macのsedの-iオプションは、バックアップファイル名の指定必須で""を置いてバックアップなしとする | |
sed -i "" -e "/X-PHONETIC-LAST-NAME:/s/$letter/${letter}゙/g" $output_file | |
done | |
sed -i "" -e "/X-PHONETIC-LAST-NAME:/y/$DAKUON/$SEION_PART/" $output_file | |
sed -i "" -e "/X-PHONETIC-LAST-NAME:/y/$HIRA_DAKUON/$SEION_PART/" $output_file | |
# 全角半角変換 | |
sed -i "" -e "/X-PHONETIC-LAST-NAME:/y/$SEION/$H_SEION/" $output_file | |
sed -i "" -e "/X-PHONETIC-LAST-NAME:/y/$HIRA_SEION/$H_SEION/" $output_file | |
sed -i "" -e "/X-PHONETIC-LAST-NAME:/y/$YOUSOKUON/$H_YOUSOKUON/" $output_file | |
sed -i "" -e "/X-PHONETIC-LAST-NAME:/y/$HIRA_YOUSOKUON/$H_YOUSOKUON/" $output_file | |
sed -i "" -e "/X-PHONETIC-LAST-NAME:/y/$KIGOU/$H_KIGOU/" $output_file | |
# 項目名を変換 | |
sed -i "" -e "s/X-PHONETIC-LAST-NAME:/SORT-STRING;CHARSET=SHIFT_JIS:/" $output_file | |
# SHIFT-JISに変換 | |
nkf --overwrite -W8 -sx $output_file |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment