Linux命令行翻译工具
【摘要】 一、背景经常在linux命令行下有些单词不认识,复制出来通过翻译软件很不方便,如果有个命令行翻译就比较舒服了。通过下面shell脚本可以在/usr/bin/yd创建yd命令来进行快速命令行翻译。 二、代码git地址#!/bin/bash# # CMD=/usr/bin/ydcat >${CMD} <<EOF#!/bin/bashARGS=1E_BADARGS=1TEM_FILE="/tmp...
一、背景
经常在linux命令行下有些单词不认识,复制出来通过翻译软件很不方便,如果有个命令行翻译就比较舒服了。通过下面shell脚本可以在/usr/bin/yd
创建yd命令来进行快速命令行翻译。
二、代码
#!/bin/bash
#
#
CMD=/usr/bin/yd
cat >${CMD} <<EOF
#!/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(/<\/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="\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
-
翻译单词
-
批量翻译单词
可以将单词放在一个文件中,去遍历翻译,例如这里翻译了下linux系统的用户名
四、其他
也可以使用python
wget https://raw.githubusercontent.com/dantangfan/fanyi/master/fanyi.py
sudo mv ./fanyi.py /usr/local/bin/fanyi
sudo chmod +x /usr/local/bin/fanyi
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)