| 1 |
#! /bin/bash |
|---|
| 2 |
# |
|---|
| 3 |
# This script is public domain. |
|---|
| 4 |
# |
|---|
| 5 |
# gcin2pho |
|---|
| 6 |
|
|---|
| 7 |
VERSION=0.0.1 |
|---|
| 8 |
|
|---|
| 9 |
OUTPUT_FILE=pho.tab.src |
|---|
| 10 |
|
|---|
| 11 |
if [ "$1" = "" ]; then |
|---|
| 12 |
echo ${0##*/}, version $VERSION |
|---|
| 13 |
echo "Usage: ${0##*/} file" |
|---|
| 14 |
exit 1 |
|---|
| 15 |
fi |
|---|
| 16 |
|
|---|
| 17 |
if [ ! -f $1 ]; then |
|---|
| 18 |
echo ${0##*/}: $1: No such file. |
|---|
| 19 |
exit 2 |
|---|
| 20 |
fi |
|---|
| 21 |
|
|---|
| 22 |
echo Generating $OUTPUT_FILE. |
|---|
| 23 |
|
|---|
| 24 |
echo 1 ˙ > $OUTPUT_FILE |
|---|
| 25 |
echo 2 ˊ >> $OUTPUT_FILE |
|---|
| 26 |
echo 3 ˇ >> $OUTPUT_FILE |
|---|
| 27 |
echo 4 ˋ >> $OUTPUT_FILE |
|---|
| 28 |
|
|---|
| 29 |
csplit $1 ` cat -b $1 | \ |
|---|
| 30 |
grep chardef | \ |
|---|
| 31 |
grep -v \## | \ |
|---|
| 32 |
head -n 1 | \ |
|---|
| 33 |
cut -f1 | \ |
|---|
| 34 |
tr -d ' ' ` > /dev/null |
|---|
| 35 |
|
|---|
| 36 |
grep -v % xx01 | \ |
|---|
| 37 |
grep -v ˙ | \ |
|---|
| 38 |
grep -v ˊ | \ |
|---|
| 39 |
grep -v ˇ | \ |
|---|
| 40 |
grep -v ˋ | \ |
|---|
| 41 |
grep -v linux | \ |
|---|
| 42 |
tr A-Z a-z | \ |
|---|
| 43 |
sed -e 's/1/ㄅ/g' \ |
|---|
| 44 |
-e 's/q/ㄆ/g' \ |
|---|
| 45 |
-e 's/a/ㄇ/g' \ |
|---|
| 46 |
-e 's/z/ㄈ/g' \ |
|---|
| 47 |
-e 's/2/ㄉ/g' \ |
|---|
| 48 |
-e 's/w/ㄊ/g' \ |
|---|
| 49 |
-e 's/s/ㄋ/g' \ |
|---|
| 50 |
-e 's/x/ㄌ/g' \ |
|---|
| 51 |
-e 's/e/ㄍ/g' \ |
|---|
| 52 |
-e 's/d/ㄎ/g' \ |
|---|
| 53 |
-e 's/c/ㄏ/g' \ |
|---|
| 54 |
-e 's/r/ㄐ/g' \ |
|---|
| 55 |
-e 's/f/ㄑ/g' \ |
|---|
| 56 |
-e 's/v/ㄒ/g' \ |
|---|
| 57 |
-e 's/5/ㄓ/g' \ |
|---|
| 58 |
-e 's/t/ㄔ/g' \ |
|---|
| 59 |
-e 's/g/ㄕ/g' \ |
|---|
| 60 |
-e 's/b/ㄖ/g' \ |
|---|
| 61 |
-e 's/y/ㄗ/g' \ |
|---|
| 62 |
-e 's/h/ㄘ/g' \ |
|---|
| 63 |
-e 's/n/ㄙ/g' \ |
|---|
| 64 |
-e 's/u/ㄧ/g' \ |
|---|
| 65 |
-e 's/j/ㄨ/g' \ |
|---|
| 66 |
-e 's/m/ㄩ/g' \ |
|---|
| 67 |
-e 's/8/ㄚ/g' \ |
|---|
| 68 |
-e 's/i/ㄛ/g' \ |
|---|
| 69 |
-e 's/k/ㄜ/g' \ |
|---|
| 70 |
-e 's/,/ㄝ/g' \ |
|---|
| 71 |
-e 's/9/ㄞ/g' \ |
|---|
| 72 |
-e 's/o/ㄟ/g' \ |
|---|
| 73 |
-e 's/l/ㄠ/g' \ |
|---|
| 74 |
-e 's/\./ㄡ/g' \ |
|---|
| 75 |
-e 's/0/ㄢ/g' \ |
|---|
| 76 |
-e 's/p/ㄣ/g' \ |
|---|
| 77 |
-e 's/;/ㄤ/g' \ |
|---|
| 78 |
-e 's/\//ㄥ/g' \ |
|---|
| 79 |
-e 's/-/ㄦ/g' \ |
|---|
| 80 |
-e 's/6/2/g' \ |
|---|
| 81 |
-e 's/7/1/g' \ |
|---|
| 82 |
-e 's/ / /g' | \ |
|---|
| 83 |
tr -s ' ' ' ' | \ |
|---|
| 84 |
perl -nle '(print,$hash{$_}=1) unless defined $hash{$_}' >> $OUTPUT_FILE |
|---|
| 85 |
|
|---|
| 86 |
rm xx00 xx01 |
|---|
| 87 |
|
|---|
| 88 |
export GCIN_NO_RELOAD= |
|---|
| 89 |
|
|---|
| 90 |
phoa2d $OUTPUT_FILE |
|---|
| 91 |
|
|---|
| 92 |
PHOTABFILE=`basename $OUTPUT_FILE .src` |
|---|
| 93 |
|
|---|
| 94 |
if [ -f $PHOTABFILE ]; then |
|---|
| 95 |
echo Generating $PHOTABFILE. Done. |
|---|
| 96 |
else |
|---|
| 97 |
echo Failed to generate $PHOTABFILE. |
|---|
| 98 |
exit 3 |
|---|
| 99 |
fi |
|---|