Linux命令行翻译工具

一、背景

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

二、代码

git地址

#!/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系统的用户名

原文地址:http://blog.51cto.com/kaliarch/2301105

时间: 2024-10-09 10:26:53

Linux命令行翻译工具的相关文章

12款最佳Linux命令行终端工具

12款最佳Linux命令行终端工具 如果你跟我一样,整天要花大量的时间使用Linux命令行,而且正在寻找一些可替代系统自带的老旧且乏味的终端软件,那你真是找对了文章.我这里搜集了一些非常有趣的终端软件,可以用来替代debian系的Linux原生终端. Tilda tilda 这是一款可配置的雷神之锤风格的终端工具,也就是说,当用户敲击配置好的热键(缺省是F1)时,这个终端会从屏幕的顶端滑出,就跟雷神之锤游戏中的效果一样. 它的安装方法: apt-get install tilda Tilda跟其

[转]12款最佳Linux命令行终端工具

摘要 “工欲善其事必先利其器”,作为菜鸟,也是从别人那里偷学来的一些东东.今天看到同事用到一个终端命令行工具,觉得自己弱爆了.然后在网上搜了下该工具.发现类似的工具还是挺多的,只是自己不知道罢了. 原文链接:12款最佳Linux命令行终端工具 内容 如果你跟我一样,整天要花大量的时间使用 Linux 命令行,而且正在寻找一些可替代系统自带的老旧且乏味的终端软件,那你真是找对了文章.我这里搜集了一些非常有趣的终端软件,可以用来替代 debian 系的 Linux 原生终端. Tilda 这是一款可

命令行翻译工具translate-shell

translate-shell mac安装 $ mkdir tools $ cd tools $ git clone https://github.com/soimort/translate-shell $ cd translate-shell/ $ make [OK] Task build completed. $ sudo make install [OK] Task build completed. [OK] translate-shell installed. 如果有gawk报错: $

20个linux命令行工具监视性能(下)

昨天晚上第一次翻译了<20 Command Line Tools to Monitor Linux Performance>中的前十个命令,翻译得不是很好,今天晚上继续把后面的十个也翻译给大家吧,第一次写博客,写的不是特别的好,希望大家不要介意,也希望大家觉得有什么不对的地方能够多多指教,毕竟小弟还是初学者.下面我们开始学习下面十个命令吧! 11,Monit –- Linux Process and Services Monitoring Monit  是一个免费开源并且基于web的进程监督实

5个基于Linux命令行的文件下载和网站浏览工具

导读 命令行是GNU/Linux中最神奇迷人的部分,它是非常强大的工具;命令行本身功能多样,多种内建或者第三方的命令行应用使得Linux变得更加健壮和强大.Linux Shell支持多种不同类型的网络应用,无论是BT下载软件,专用下载器或者互联网冲浪. 5个命令行互联网工具 这里我们介绍了5个很好的命令行互联网工具,它们非常有用,也很容易上手. 1. rTorrent rTorrent是基于文本,用C++编写,追求高性能的Torrent客户端.支持大部分标准的Linux发行版,包括FreeBSD

28 个必备的 Linux 命令行工具

28 个必备的 Linux 命令行工具 dstat& sariostat, vmstat, ifstat and much more in one.slurm网络流量图形化工具vim&emacs这个没人不知道吧~screen, dtach,tmux, byobu保持你的终端连接活跃.multitail在不同的窗口查看日志文件.t... dstat & sar iostat, vmstat, ifstat and much more in one. slurm 网络流量图形化工具 v

7个基于Linux命令行的文件下载和网站浏览工具

7个基于Linux命令行的文件下载和网站浏览工具 时间:2015-06-01 09:36来源:linux.cn 编辑:linux.cn 点击: 2282 次 Linux命令行是GNU/Linux中最神奇迷人的部分,它是非常强大的工具.命令行本身功能多样,多种内建或者第三方的命令行应用使得Linux变得更加健壮和强大.Linux Shell支持多种不同类型的网 Linux命令行是GNU/Linux中最神奇迷人的部分,它是非常强大的工具.命令行本身功能多样,多种内建或者第三方的命令行应用使得Linu

Linux命令行抓包及包解析工具tshark(wireshark)使用实例解析

在Linux下,当我们需要抓取网络数据包分析时,通常是使用tcpdump抓取网络raw数据包存到一个文件,然后下载到本地使用wireshark界面网络分析工具进行网络包分析. 最近才发现,原来wireshark也提供有Linux命令行工具-tshark.tshark不仅有抓包的功能,还带了解析各种协议的能力.下面我们以两个实例来介绍tshark工具.1.安装方法 CentOS: yum install -y wireshark    Ubuntu: apt-get install -y tsha

分布式进阶 十 linux命令行下载文件以及常用工具 wget Prozilla MyGet Linuxdown Cu

linux命令行下载文件以及常用工具:wget.Prozilla.MyGet.Linuxdown.Curl.Axel 本文介绍常用的几种命令行式的下载工具:wget.Prozilla.MyGet.Linuxdown.Curl.Axel 下面就为大家详细介绍一下这些工具. 1. Wget Wget是一个十分常用命令行下载工具,多数Linux发行版本都默认包含这个工具.如果没有安装可在http://www.gnu.org/software/wget/wget.html 下载最新版本. 1.1 编译安