|
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 |
|
|---|