使用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=`grep -w "$ENGLISH" $BOOK | sed "s/$ENGLISH //p" | head -n 1` ##取中文釋義
echo -e "\033[35m $ENGLISH 的中文意思是:$ANSWER \033[0m"
}
###查找中文
function2 (){
read -p "請輸入要查找的詞:" CHINESE
ANS=`grep "$CHINESE" $BOOK | egrep -o "[a-z]+ "` ##取中文
AN=`grep "$CHINESE" $BOOK | egrep -o "[a-z]+ " | wc -l` ##取出的中文有多少行
for((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
}
###洗掉單詞
function3 (){
read -p "要洗掉的單詞:" DELETE
DEL=`sed -n "/\<$DELETE\>/=" $BOOK` ##使用sed匹配的行號
sed -i "$DEL"d $BOOK ##使用sed洗掉匹配的行內容
echo -e "\033[35m 洗掉成功!\033[0m"
}
###添加單詞
function4 (){
read -p "要添加的單詞:" ADD
read -p "請輸入中文釋義:" ADDS
WORDS="$ADD $ADDS"
echo $WORDS >> $BOOK ##重定向到字典后面
echo -e "\033[35m 添加成功!\033[0m"
}
###修改單詞
function5 (){
read -p "請輸入要修改的單詞:" AMEND
read -p "請輸入修改后的英文和中文(其間請用空格或換行隔開):" AFTERE AFTERC
TRANSLATE=`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"
}
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/336339.html
標籤:其他
上一篇:ByteTrack實時多目標跟蹤
