root/releases/bedework-3.7/util/massageContacts.sh

Revision 2956 (checked in by bleibson, 3 years ago)

small improvements

  • Property svn:executable set to *
Line 
1 #! /bin/bash -f
2
3 rejectList=("Davidr*n Taylor" unnamed)
4 inputFile=$1
5 #inputFile=MimisContacts.txt
6 tmpFile=/tmp/MimisContactsMassaged$$.txt
7 # the resulting file is pumped out via stdout
8
9 sed -e '/ADR;TYPE=WORK:;;;;;;$/d' -e 's/
10 $//' -e '/ADR;TYPE=HOME:;;;;;;$/d' -e '/ADR;TYPE=X-ORACLE-OTHER:;;;;;;$/d' -e 's/VERSION:3.0$/VERSION:4.0/' $inputFile > $tmpFile
11
12
13 while read line; do
14    
15   case "$line" in
16      ^$)
17        # toss empty lines
18        ;;
19      BEGIN:VCARD)
20        # save the Begin line
21        beginLine=$line
22        ;;
23      N:*)
24        # save N: lines for examination
25        nLine=$line
26        cardBuffer=${cardBuffer}${line}%%
27        ;;
28      ORG:*)
29        # save ORG: lines for examination
30        orgLine=$line
31        cardBuffer=${cardBuffer}${line}%%
32        ;;
33      FN:*)
34        # save FN: lines for examination
35        fnLine=$line
36        cardBuffer=${cardBuffer}${line}%%
37        ;;
38      END:VCARD)
39        #process what we have
40        # echo out the begin line
41        echo $beginLine
42        if [ x"$fnLine" = x ]; then
43           # skip over the rejects
44           for x in $rejectList; do
45             if [ `grep "$x" $fnLine` ] ; then
46               continue
47             fi
48           done
49           # mock up an FN and spit it out
50           if [ "$nLine" != "N:;;;;" ]; then
51             newFnLine=`echo $nLine | sed 's/N://'`
52             lastName=`echo "$newFnLine" | cut -d\; -f1`
53             firstName=`echo "$newFnLine" | cut -d\; -f2`
54             echo "FN:$firstName $lastName" | sed 's/FN: /FN:/'
55           else
56             newFnLine=`echo $orgLine | sed 's/ORG: /FN:/' |  sed 's/FN: /FN:/'`
57           fi
58          
59        fi
60        # echo out the rest of the lines
61        echo -n $cardBuffer | sed 's/%%/\n/g'
62        #echo out the end line
63        echo $line
64        fnLine=""
65        cardBuffer=""
66        nLine=""
67        orgLine=""
68        ;;
69      *)
70        cardBuffer=${cardBuffer}${line}%%
71        ;;
72 esac     
73
74 done < $tmpFile
75
76
77
78
79
Note: See TracBrowser for help on using the browser.