linux 命令行 翻译工具,Linux命令行翻译工具

一、背景

经常在linux命令行下有些单词不认识,复制出来通过翻译软件很不方便,如果有个命令行翻译就比较舒服了。通过下面shell脚本可以在/usr/bin/yd创建yd命令来进行快速命令行翻译。

二、代码

#!/bin/bash

#

#

CMD=/usr/bin/yd

cat >${CMD} <

#!/bin/bash

ARGS=1

E_BADARGS=1

TEM_FILE="/tmp/dict.tmp"

example_enable=false

if [ \$# -lt "\$ARGS" ]

then

echo "Usage:\$(basename \$0) word"

exit \$E_BADARGS

fi

#处理参数

while getopts "a" arg

do

case \$arg in

a)

example_enable=true

shift

;;

?)

example_enable=false

echo "unkown argument"

exit 1

;;

esac

done

keyword="\$*"

keyword=\${keyword// /%20}

# 抓取页面,删除html代码,空行等,只留下想要的内容

curl -s ‘http://dict.youdao.com/search?q=‘\$keyword‘‘ | awk ‘BEGIN{j=0;i=0;} {if(/phrsListTab/){i++;} if(i==1){print \$0; if(//){i=0;}} if(/collinsToggle/){ j++;} if

(j==1) {print \$0; if(//){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="\033[32;1m\n\n\$line\033[0m" # 释义编号

elif [ \$ln_item == 1 ] ; then

line="\033[32;1m[\$line]\033[0m" # 词性

elif [ \$ln_item == 2 ] ; then

line="\033[1m\$line\033[0m" # 释义

elif [ \$ln_eg == 0 ] ; then

line="\033[32;1m\n \$line\033[0m" # 例:

elif [ \$ln_eg == 1 ]; then

line="\033[33m\$line\033[0m" # 例句

elif [ \$ln_eg == 2 ]; then

line="\033[33m\$line\033[0m" # 例句释义

fi

body="\$body \$line"

fi

done < \$TEM_FILE

if \$example_enable

then

echo -e "\033[31;1m\$head\033[0m \$body"

else

echo -e "\033[31;1m\$head\033[0m"

fi

exit 0

EOF

chmod +x ${CMD}

三、测试

安装

直接下载shell脚本,bash运行脚本即可 bash linux_fanyi.sh

翻译单词

5a725cd947702563a121c5e545dbedf9.png

批量翻译单词

可以将单词放在一个文件中,去遍历翻译,例如这里翻译了下linux系统的用户名

a18f67e33b92c55eb1343664aeee7928.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值