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/ //g'| sed 's/→//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$line 33[0m" # 释义编号 elif [ $ln_item == 1 ] ; then line=" 33[32;1m[$line] 33[0m" # 词性 elif [ $ln_item == 2 ] ; then line=" 33[1m$line 33[0m" # 释义 elif [ $ln_eg == 0 ] ; then line=" 33[32;1mn $line 33[0m" # 例: elif [ $ln_eg == 1 ]; then line=" 33[33m$line 33[0m" # 例句 elif [ $ln_eg == 2 ]; then line=" 33[33m$line 33[0m" # 例句释义 fi body="$body $line" fi done < $TEM_FILE echo -e " 33[31;1m$head 33[0m $body" exit 0 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |