I am LAZY bones ? all linux

搞定黑莓的通讯录

新买手机的朋友,都知道有时候转移通讯录是件挺麻烦的事情,这不,我就遇到了。
不过幸好,我的老手机支持把通讯录都复制到SIM卡,而且我的联系人也不算多,刚好基本把SIM卡的150人塞满。而且黑莓也支持从SIM卡批量导入数据。
这样,转移似乎是很快就完成了,但是完事以后一看,这个黑莓的联系人排序确实是乱得可以,不知道为什么基本上是无序状态。
后来网上一看,还真有不少朋友也遇到了这样的问题,当然也有朋友给出了解决方案,就是在没个名字前加上名字的拼音首字母。具体做法呢就是先用PC端的名为“桌面管理器”的软件,先把通讯录导出成OUTLOOK的格式,然后转成txt文本,再用人家的一个excel文件,导入之后套用一个公式,就加上首字母了,然后再导成txt,到OUTLOOK,再导回黑莓。
这样问题虽算解决了,但整个一套,不仅麻烦,而且很windows,我总不能为了这个,而去下载整套MS office吧。。。
好好研究了一下那桌面管理器以后,发现,其实它是支持通讯录到txt文件的直接导入导出的,于是乎,就看到希望了,现在只要在txt文件里面加上没个人的首字母信息就可以了。
那个文本文件是这样的形式:没个联系人一行,字段之间用逗号割开,字段分别是:”First Name”,”Middle Name”,”Last Name”,”Title”,”Company Name”,”Work Phone”,”Work Phone2″….
而从SIM卡导入后,整个姓名都在 First Name 一栏,Last Name 空着,于是我就用了下面这段awk脚本,把每个人的 Last Name 填上了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
BEGIN{
	FS=","
	OFS=""
}
{if(NR!=1){
	print "==",$1,$2,$3,$4
	h=$1 "," $2
	t=""
	for(i=3;i<NF;i++){
		t=t $i ","
	}
	$0=""
	"curl -s `echo \"http://www.51windows.net/pages/pinyin.asp?txt=" $1 "\" | iconv -f utf8 -t gb2312` | enconv | grep \\\"pincode\\\" | awk 'BEGIN{RS=\"<nobr>\"}{if(NR!=1)printf(\"%s\",substr($1,1,1))}'" | getline
	print h,",\"",$0,"\"",t
}else{
print $0
}
}

这个只是完成了到51windows查询拼音首字母的功能,另外那些诸如编码转换和换行符转换之类的事情,还得加几条命令。
完成了以后,导入会黑莓,联系人就又都乖乖地排好了,哈哈。

最后修改时间: 2009年01月02日 23:32

本文章发表于: 2009年01月02日 23:32 | 所属分类:流水帐, 经验技巧. | 您可以在此订阅本文章的所有评论. | 您也可以发表评论, 或从您的网站trackback.

9 个评论 关于: “搞定黑莓的通讯录”

  1. TualatriX 在 2009年01月03日 07:23 说:回复

    太强了。脚本真是万能的!

  2. wd 在 2009年01月03日 09:05 说:回复

    原来你是要干这个。。。

  3. bones7456 在 2009年01月03日 19:31 说:回复

    呵呵,是啊,晦涩的awk,其实强,至少觉得比sed强,wd也这么说了。

  4. oceanboo 在 2009年01月03日 22:45 说:回复

    同wd,原来你是要干这个的。。。。。。。。

  5. xiooli 在 2009年01月04日 20:50 说:回复

    ee阿姨不是搞到个perl模块可以汉字转拼音吗?话说我awk还是不很熟。

    • bones7456 在 2009年01月04日 22:01 说:回复

      其实后来我找到了这里有所有GB2312编码的汉字的拼音了。。。

      • xiooli 在 2009年01月05日 13:47 说:回复

        呵呵,那就简单了阿,先整下来保存成pinyin.txt,然后比如一句话:“骨头大侠是中老年妇女的偶像”要将其转换成拼音,只需:

        1
        2
        3
        4
        
        w="骨头大侠是中老年妇女的偶像"
        for i in `echo "$w"|sed "s/./&amp; /g"`;do
            sed "s/^.*"$i" //;s/ .*$//" pinyin.txt|tr "n" " "
        done
        • chattan 在 2009年01月09日 19:30 说:回复

          汗。。。。。。。。。。。。

        • bones7456 在 2009年01月10日 10:16 说:回复

          nnd…xiooli是老妪杀手。。嘿嘿。。

发表评论