linux 英汉词典程序shell+postgresql版

在linux控制台下工作,有时候遇到不懂的单词,想要找个linux下的词典程序,搜寻无果,只好自己动手写个了。

首先获取词典文本文件,在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/|/\n/;s/\;/\n/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语句是为了输出结果更直观一点(分行显示等),可要可不要。

posted @   sherlock-merlin  阅读(176)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示