加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

linux命令行版有道词典

发布时间:2020-12-15 07:09:26 所属栏目:安全 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 #!/bin/bashARGS=1E_BADARGS=65TEM_FILE="/tmp/dict.tmp"if [ $# -ne "$ARGS" ] thenecho "Usage:`basename $0` word"exit $E_BADARGSfi# 抓取页面,

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

#!/bin/bash
ARGS=1
E_BADARGS=65
TEM_FILE="/tmp/dict.tmp"

if [ $# -ne "$ARGS" ]
 then
	echo "Usage:`basename $0` word"
	exit $E_BADARGS
fi

# 抓取页面,删除html代码,空行等,只留下想要的内容
curl -s 'http://dict.youdao.com/search?q='$1'' | awk 'BEGIN{j=0;i=0;} {if(/phrsListTab/){i++;} if(i==1){print $0; if(/</ul>/){i=0;}} if(/collinsToggle/){ j++;} if(j==1) {print $0; if(/</ul>/){j=0;}}}' | sed 's/<[^>]*>//g' | sed 's/&nbsp;//g'| sed 's/&rarr;//g' | sed 's/^s*//g' | sed '/^$/d'> $TEM_FILE

# 处理输出
is_head=true # 当前行是否属于“头部”
head="" # 头部内容
body="" # 主体内容
ln_item=0 # 每一条解释的行号
ln_eg=0 # 例句行号

while read line
do
	let ln_item++
	let ln_eg++
	num_flag=`echo "$line" | awk '/[0-9]+.$/'`
	if [ "$num_flag" != "" ]; then ## 遇见'数字+点'开头的行
		is_head=false # 第一次遇见数字行  将头部标示设置为false
		ln_item=0
	fi

	eg_flag=`echo "$line" | awk '/例:$/'` # 遇见'例:'开头的行
	if [ "$eg_flag" != "" ]; then
		ln_eg=0
	fi

	if $is_head ; then
		head="$head $line"
	else
		if [ $ln_item == 0 ] ; then
			line="33[32;1mnn$line33[0m" # 释义编号
		elif [ $ln_item == 1 ] ; then
			line="33[32;1m[$line]33[0m" # 词性
		elif [ $ln_item == 2 ] ; then
			line="33[1m$line33[0m" # 释义 
		elif [ $ln_eg == 0 ] ; then
			line="33[32;1mn   $line33[0m" # 例:
		elif [ $ln_eg == 1 ]; then
			line="33[33m$line33[0m" # 例句 
		elif [ $ln_eg == 2 ]; then
			line="33[33m$line33[0m" # 例句释义 
		fi
		body="$body $line"
	fi
done < $TEM_FILE
echo -e "33[31;1m$head33[0m $body"

exit 0

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读