文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>一个用Shell写的五笔反查小工具

一个用Shell写的五笔反查小工具

时间:2006-12-19  来源:hellofalcon

Declaration
  
  该文为本人原创,如需转载,请注名原作者和本站地址,但未经本人同意,严禁用于商业途径。

Text

  苦于在Linux下没有找到一个合适的五笔反查工具,于是自己用Shell写了一个。下面对这个小工具做个简单的说明。

  功能:在命令行下查找某个汉字的五笔编码;查找某种编码对应的汉字,带索引功能。
  实现:它由查询脚本(wbfc)和一个纯文本的五笔编码库(wb_db)组成。查询脚本主要由awk语言实现,而五笔编码库是一个具有五笔编码和汉字两个字段的纯文本数据库。
  安装:下载本文附件里头的wbfc-0.1.tar.gz,执行tar xzvf wbfc-0.1.tar.gz解压到当前目录,然后切换到root用户,通过bash install.sh进行安装。
  卸载:运行上面解压后目录下的uninstall.sh脚本或者直接删除/bin/wbfc文件和/etc/wb目录。

Code

#!/bin/bash

#Function: WuBi Chinese Input Method Anti-Inquire

#Author : falcon

#Email : zhangjinw[at]gmail.com

#Date : 2006.9.6


cat <<EOF
wbfc 0.1
copyright &#169; 2006-2007 by falcon

WuBi Chinese Input Method Anti-Inquire

EOF

if [[ $1 != "-o" ]] && [[ $1 != "--order" ]] && [[ $1 != "--anti" ]] && [[ $1 != "-a" ]] || [[ $1 = "-h" ]] || [[ $1 = "--help" ]]
then
cat <<EOF
Usage:
        wbfc [option] [chinese or wubi-code] [wb_db path]
Option:
1. -o --order
        Input Wubi-code,return chinese Chinese character
2. -a --anti
        Input Chinese character,return Wubi-code
3. -h --help
        Get Help
Example:
1.Chinese character to Wubi-code: wbfc -a 是
2.Wubi-code to Chinese character: wbfc -o JGHu
EOF
        exit
fi

IFS=''

if test -z $3
then
        wb_db_path="/etc/wb/wb_db"
else
        wb_db_path=$3
fi

if [[ $1 = '-a' ]] || [[ $1 = '--anti' ]]
then
        echo "Chinese Character:"$2
        echo "Wubi Code:"
        awk 'BEGIN {FS="\t";total=0;}
                {
                        if ($1=="'$2'")
                        {
                                total=total+1;
                                printf total":" tolower($2) "\n";
                        }
                }
                END{printf "\nReturn %d result\n",total}' $wb_db_path
else
        echo "Wubi Code:"$2
        echo "Chinese Character:"
        awk 'BEGIN{FS="\t";total=0;}
                {
                        wb_code=tolower($2);
                        input_code=tolower("'$2'");
                        if(index(wb_code,input_code)==1)
                        {
                                total=total+1;
                                printf total":" $1 "\t" wb_code "\n";
                        }
                }
                END{printf "\nReturn %d result\n",total}' $wb_db_path
fi


Demo

shell> wbfc -a 爱        //通过汉字查找五笔编码
wbfc 0.1
copyright  © 2006-2007 by falcon
WuBi Chinese Input Method Anti-Inquire

Chinese Character:爱
Wubi Code:
1:epdc

Return 1 result
shell> wbfc -o epdc      //通过编码查找汉字
wbfc 0.1
copyright  © 2006-2007 by falcon
WuBi Chinese Input Method Anti-Inquire

Wubi Code:epdc
Chinese Character:
1:爱    epdc

Return 1 result
shell> wbfc -o ep        //通过编码索引查找汉字和汉字的完全编码
wbfc 0.1
copyright  © 2006-2007 by falcon
WuBi Chinese Input Method Anti-Inquire

Wubi Code:ep
Chinese Character:
1:爱    epdc
2:胺    epvg
3:脓    epey
4:腔    epwa
5:受    epcu
6:舜    epqh
7:逐    epi

Return 7 result
shell> wbfc          //查看使用帮助(或者wbfc -h)
wbfc 0.1
copyright  © 2006-2007 by falcon
WuBi Chinese Input Method Anti-Inquire

Usage:
        wbfc [option] [chinese or wubi-code] [wb_db path]
Option:
1. -o --order
        Input Wubi-code,return chinese Chinese character
2. -a --anti
        Input Chinese character,return Wubi-code
3. -h --help
        Get Help
Example:
1.Chinese character to Wubi-code:       wbfc -a 是
2.Wubi-code to Chinese character:       wbfc -o JGHu



Extension

  该工具的功能还不完善,比如:不支持短语的五笔编码反查。我将逐渐把它完善,当然您也可以自由修改和使用它。
  另外,那个文本数据库的字符编码是utf8的。如果您机器的默认字符编码不是utf8的话,可以通过设置终端的字符编码为utf8来正常显示汉字;当然,也可以直接修改文本数据库的编码为你机器默认的字符编码。比如这样可以把那个文本数据库的编码修改为gb2312。
  
shell> iconv -f utf8 -t gb2312 wb_db -o wb_db_temp
shell> mv wb_db_temp wb_db

  在以后的修订版里,我将引入配置文件或者是安装的自动设置来解决编码问题。

PS

文件: wbfc-0.1.tar.gz
大小: 26KB
下载: 下载
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载