shell脚本——翻译英文单词

近来在学习linux跟shell脚本。英文又多年不用还给教师了。遇到不懂的单词都要开个词霸网页词典来翻译,久了多有不爽。偶然找到http://www.iteye.com/topic/819440中提到一个翻译英文单词的shell脚本,可惜是多年以前的,并且用的还是如今被墙的谷歌,当然失效了。

translate() {  
    wget -qO- "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=$1&langpair=${2:-en}|${3:-zh}" | sed -E -n ‘s/[[:alnum:]": {}]+"translatedText":"([^"]+)".*/\1/p‘;   
    return 0;  
}

为了方便自己学习和练手,修改成金山词典的。苦于半桶水的水平,反复用了好些管道和sed进行过滤和排版,最后勉强可用。写出来交流交流,让各路高手给小弟指正一下:

translate() {
    echo
    echo  "${1}:"
    wget -qO- "http://www.iciba.com/$1"|    sed -n ‘/"prons"/,/"net_paraphrase"/p‘|    sed -e ‘s/<[^>]*>//g‘ -e ‘s/[[:space:]]//g‘|    tr -d ‘\n‘|    sed -e ‘s/]/]\t/‘ -e ‘s/[a-z]*\./\n&/g‘
    echo
    echo
    return 0;  
}

把这段函数放到~/.bashrc里面,重开一个终端就可以用了:

$ translate computer

computer:
英[kmpju:t(r)]    美[kmpjut]
n.(电子)计算机,电脑

$

这个地方自己一直不是很满意,感觉总有更简洁的方法来实现:

sed -n ‘/"prons"/,/"net_paraphrase"/p‘        //定位需要的代码块,我选择从读音到简单词义部分
sed -e ‘s/<[^>]*>//g‘ -e ‘s/[[:space:]]//g‘    //删除所有<...>的HTML标记和空格
tr -d ‘\n‘                                    //删除所有换行,把文字都排成一行
sed -e ‘s/]/]\t/‘ -e ‘s/[a-z]*\./\n&/g‘        //音标之间加TAB,词性前加换行
时间: 2024-10-04 04:40:59

shell脚本——翻译英文单词的相关文章

20.1 Shell脚本介绍;20.2 Shell脚本结构和执行;20.3 date命令用法;20.4 Shell脚本中的变量

20.1 Shell脚本介绍 1. shell是一种脚本语言 aming_linux blog.lishiming.net 2. 可以使用逻辑判断.循环等语法 3. 可以自定义函数 4. shell是系统命令的集合 5. shell脚本可以实现自动化运维,能大大增加我们的运维效率 20.2 Shell脚本结构和执行 1. 开头(首行)需要加: #!/bin/bash 2. 以#开头的行作为解释说明: 3. 脚本的名字以.sh结尾,用于区分这是一个shell脚本 4. 执行.sh脚本方法有两种:

Linux shell脚本基础学习详细介绍(完整版)二

详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续. Linux shell脚本基础已经被分成好几个部分了,这里对控制流程的内容也就马上讲完了,这是最后一部分关于here document,这里举例稍微有点复杂,我们慢慢来分析这个复杂Linux shell脚本. 6. Here documents 当要将几行文字传递给一个命令时,here docu

Shell脚本-l良好的习惯

原文: http://www.javacodegeeks.com/2013/10/shell-scripting-best-practices.html#BP11 翻译: aven 大多数编程语言都有一系列使用该语言编码需要遵循良好的编程习惯.然而,对于shell脚本我没有找到一个比较全面的,所以我决定编写一个我自己的基于我多年编写shell经验的编程习惯. 移植性的注意:自从主要编写shell脚本在安装了Bash 4.2的系统上运行,我从来不担心可移植性,你也不需要担心!下面的列表都是使用Ba

[转]一个备份MySQL数据库的简单Shell脚本

本文翻译自 iSystemAdmin 的 <A Simple Shell Script to Backup MySQL Database> Shell脚本是我们写不同类型命令的一种脚本,这些命令在这一个文件中就可以执行.我们也可以逐一敲入命令手动执行.如果我们要使用shell脚本就必须在一开始把这些命令写到一个文本文件中,以后就可以随意反复运行这些命令了. 我首先要在本文带给你的是完整脚本.后面会对该脚本做说明.我假定你已经知道shell scripting. mysqldump和cronta

shell脚本的基础

shell脚本的基础 shell 基本语法 变量 什么是shell? 先看一个简单的shell程序 [[email protected]~]# cat linux.sh      #查看linux.sh文件内容#!/bin/bash echo -e "\e[1;31m linuxtouch  \e[0m"   #红色字体输出 linuxtouch[[email protected] ~]# sh linux.sh  linuxtouch  [[email protected] ~]#

linux下shell脚本学习

在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具.Shell不仅仅是命令的收集,而且是一门非常棒的编程语言.您可以通过使用shell使大量的任务自动化,shell特别擅长系统管理任务,尤其适合那些易用性.可维护性和便携性比效率更重要的任务. 下面,让我们一起来看看shell是如何工作的: 1. 建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且

SHELL 脚本

一个很不错的bash脚本编写教程,至少没接触过BASH的也能看懂 建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用.所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行).  如同其他语言一样,通过我们使用任意一种文字编辑器,比如nedit.kedit.emacs.vi  等来编写我们的she

第一章、shell脚本基础

shell的作用:人和机器交互的工具-->其实是一个程序. shell里比较好用的程序是bash 默认情况下几乎所有的linux系统默认的shell都是bash ==== c语言为什么要编译.c语言是人认识的语言,根据某种编码进行翻译叫编译. shell脚本编程的优势. 查看当前shell [[email protected] ~]$ echo $SHELL /bin/bash [[email protected] ~]$  shell课程体系 Shell脚本编程 Shell基础 变量的使用 算

linux学习 – shell脚本

shell是命令和硬件之间的桥梁 shell的工作方式分为两种:交互式.批处置 交互式:用户一次输入一条命令,shell翻译并执行一条 批处理:用户将多条命令构成一个shell脚本,执行脚本时,shell一次执行全部的命令,shell脚本是将各种命令通过逻辑语句组合而成的程序 1.查看系统中所有的可用的shell解释器 cat /etc/shells 2.查看当前的shell解释器 3.编写简单的shell脚本 主要用到文本编辑器vi ,按照命令的执行顺序依次编写,每行写一条linux命令 一个