Linux使用Shell编写电子词典
使用Shell编写电子词典
- 代码块
代码块
字典是可以从网上找上传至linux或者直接使用网上词典;
#!/bin/bash
#
#*****************************************************************
#Author: King@1208
#QQ: #########
#Date: 2021-10-24
#URL: https://blog.csdn.net/weixin_44847002
#FileName: dictionary.sh
#Copyright(C): 2021 All rights reserved
#*****************************************************************
###字典文件地址
BOOK=/project/sh/dictionary.txt
###查找英文
function1 (){read -p "请输入要查找的英文:" ENGLISH ANSWER_EN=`grep -w "$ENGLISH" $BOOK`ANSWER=`grep -w "$ENGLISH" $BOOK | sed "s/$ENGLISH //p" | head -n 1` ##取中文释义if [ -n "$ANSWER_EN" ] ;thenecho -e "\033[35m $ENGLISH 的中文意思是:$ANSWER \033[0m"elseecho -e "\033[33m 没有此单词!!\033[0m"fi
}###查找中文
function2 (){read -p "请输入要查找的中文:" CHINESEAN=`grep "$CHINESE" $BOOK | egrep -o "[a-z]+ " | wc -l` ##取出的中文有多少行(数字)if [ $AN -eq 0 ] ;thenecho -e "\033[33m 没有此中文的释义!!\033[0m"elsefor((i=1;i<=$AN;i++));do ##使用for语句连续打印各个释义的英文TRANS=`grep "$CHINESE" $BOOK | egrep -o "[a-z]+ " | sed -n "$i p"` ##取英文CHINESES=`grep "$CHINESE" $BOOK | egrep -o "[^[:space:]]+" | awk 'NR%2==0' | sed -n "$i p"` ##取中文echo -e "\033[35m $CHINESES 对应的英文是:$TRANS \033[0m"; done
fi}
###删除单词
function3 (){read -p "要删除的单词:" DELETEDEL=`sed -n "/\<$DELETE\>/=" $BOOK` ##使用sed匹配的行号(数字)if [ ! $DEL ] ;thenecho -e "\033[33m 没有此单词!!\033[0m"elsesed -i "$DEL"d $BOOK ##使用sed删除匹配的行内容echo -e "\033[35m 删除成功!\033[0m"fi
}###添加单词
function4 (){read -p "要添加的单词:" ADDread -p "请输入中文释义:" ADDSWORDS="$ADD $ADDS"echo $WORDS >> $BOOK ##重定向到字典后面echo -e "\033[35m 添加成功!\033[0m"
}###修改单词
function5 (){read -p "请输入要修改的单词:" AMENDif [ -n "$AMEND" ] ;thenread -p "请输入修改后的英文和中文(其间请用空格或换行隔开):" AFTERE AFTERCTRANSLATE=`grep "\<$AMEND\>" $BOOK | sed "s/$AMEND //p" | head -n1` ##取修改单词的中文sed -i "s/\<$AMEND\>/$AFTERE/g" $BOOK ##修改英文sed -i "s/$TRANSLATE/$AFTERC/g" $BOOK ##修改中文echo -e "\033[35m 修改成功!\033[0m"elseecho -e "\033[33m 没有此单词,无效修改!!\033[0m"fi
}color1='\033[32m'
###菜单列表打印
echo -e "\033[40;37m 当前词典一共有7986个单词\033[0m"
echo -e "$color1 *************************\033[0m"
echo -e "$color1 |*******1.英译汉********|\033[0m"
echo -e "$color1 |*******2.汉译英********|\033[0m"
echo -e "$color1 |*******3.删除词条******|\033[0m"
echo -e "$color1 |*******4.添加词条******|\033[0m"
echo -e "$color1 |*******5.修改词条******|\033[0m"
echo -e "$color1 |*******6.保存并退出****|\033[0m"
echo -e "$color1 *************************\033[0m"
###实现菜单方式的选择
while true ;do
read -p "请输入序号:" NUM
case $NUM in
1)function1;;
2)function2;;
3)function3;;
4)function4;;
5)function5;;
6)echo -e "\033[34m 欢迎再次使用^_^\n \033]0m"break;;;
*)echo -e "\033[33m ***请输入正确的序号*** \033[0m"
esac
done
Linux使用Shell编写电子词典相关推荐
- Linux的shell编写
-eq //等于 -ne //不等于 -gt //大于 -lt //小于 ge //大于等于 le //小于等于 实验中遇到的问题: 1.NAME=user1 中间不能有空格 2.[ xxx ] xx ...
- linux用shell编写猜数字,Shell猜数字游戏
这篇文章主要为大家详细介绍了 实现猜数字游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下. 本文实例为大家分享了Shell实现猜数字游戏的具体代码,供大家参考,具体内 ...
- linux中shell编写数组排序,linux bash shell实现对数组快速排序(升序)
2011年12月19日,参考网上用C语言实现的快速排序,经过一番修改后,用shell(我的测试环境为centos5的bash-v3.x)实现了相同功能:对数组进行升序排序. 注:如果代码框里的代码复制 ...
- 【Linux】Shell 编写case in 语句
附上自己的小例子 #!/bin/bash # ***** server # # description: run **** server after startup case $1 in st ...
- 关于基于Linux的电子词典的编写
目录 1:数据库的准备 2:服务器的编写 3:客户端的编写 4:可能出现的问题总结 前言: 电子词典的实现要兼顾注册,登录,查找,查看历史以及退出功能.所以要思考服务端和客户端之间交互(即数据的传送) ...
- linux电子词典项目流程,毕业设计_linux下电子词典的设计与实现.doc
毕业设计_linux下电子词典的设计与实现 毕业设计(论文) 题目:Linux下电子词典的设计与实现 学 生 姓 名 学 号 201022080223 班 级 通信102202H班 所属院(系) 电子 ...
- 在linux中运行电子词典,《Linux下电子词典的设计和实现》.doc
<Linux下电子词典的设计和实现> 毕业设计(论文) 题目:Linux下电子词典的设计与实现 2014 年 11月 20日 大学毕业设计(论文)任务书 学院(直属系):电子信息工程系 时 ...
- linux端口扫描脚本ip段,Linux shell编写端口扫描脚本
Linux shell编写端口扫描脚本 需求: 扫描特定主机 扫描特定主机的特定端口 扫描特定网段 扫描特定网段中哪些主机开放了特定的端口 源码如下: #/bin/bash #该脚本用于对特定目标主机 ...
- Linux中shell语法和脚本编写
Linux中shell语法和脚本编写 原文地址:学习shell的语法,及脚本编写 其它相关辅助资料: 编写shell脚本所需的语法和示例 基础linux指令&简单的shell语法和脚本编写 什 ...
最新文章
- mysql tree 修改_13.1 设置更改root密码 13.2 连接mysql 13.3 mysql常用命令
- 2011年1月和2月blog汇总:Orchard、敏捷个人、英语
- 使用睡袋_在户外一个关乎睡眠的重要因素——睡袋
- python列表排序后返回索引排序
- OpenNI框架介绍
- 算法-- 找到所有数组中消失的数字(Java)
- php5.4以下,json_encode不转义实现方法
- Multi-thread--C++11中thread的使用
- 细说JDK动态代理的实现原理
- @Param注解在dao层的使用
- Linux学习总结(54)——Red Hat Enterprise Linux与CentOS的区别
- Ubuntu 14.10安装SecureCRT 7.3
- 20多个Maven命令和选项(备忘单)
- java类库查询手册_JAVA类库手册
- js中对同步和异步的理解
- java链式编程/级联式编程
- 供应链优势持续赋能 国美生态圈日趋完善
- centos挂载本地镜像作为yum源
- 塔防游戏制作教程(二)
- 腾讯云服务器修改和重置登录密码图文教程