首先获取词典文本文件,在github上找到一个
建立数据库 create database dictdb;
创建表 create table dict(en text,zh text);
导入词典文件 copy "dict"("en","zh") from '/tmp/word.txt';
vi /usr/bin/dict
#/bin/bash dbname=dictdb tablename=dict while test $# -lt 1;do echo "missing parameter" exit 1 done su - postgres << ! /usr/bin/psql -d ${dbname} << EOF o | sed -n '3p' | sed 's/|/ /;s/;/ /g;s/ //g;s/(0 rows)/没有查到该单词!/' select * from ${tablename} where en='$1'; EOF !
chmod 755 /usr/bin/dict
psql中,o的官方含义是send all query results to file or |pipe,在这里我将查询结果用管道传递给了sed。
这个sql语句结果通常有4行(如果query成功的话),第一行是表头(字段名),第二行是分隔符,第三行是查询结果,第四行是统计信息(有多少行)。只有第三行是有用的,所有用sed -n ''3p" 来打印第三行。
后面的sed语句是为了输出结果更直观一点(分行显示等),可要可不要。