第三章:Creating Utilities--27.增加一个本地词典
做完了上面的第25、26个脚本后,我们想要自己手动增加一个本地词典,这样就不用在每次遇到一个新的单词后,都会一遍遍的报错了。
代码:
1 #!/bin/sh 2 3 # spelldict.sh -- 使用'aspell'特性以及一些过滤以便 4 # 允许命令行拼写检查给定的输入文件 5 6 # 不可避免的,你会发现,有些词汇是错误的,但你认为 7 # 它们是正确的。简单的将它们保存在一个文件中,一次 8 # 一行,并且确定变量'okaywords'指向这个文件。 9 10 okaywords="$HOME/okaywords" 11 tempout="/tmp/spell.tmp.$$" 12 spell="aspell" # 根据需要修改 13 14 trap "/bin/rm -f $tempout" EXIT 15 16 if [ -z "$1" ]; then 17 echo "Usage: spell file | URL" >&2 18 exit 1 19 elif [ ! -f $okaywords ]; then 20 echo "No personal dictionary found. Create one and return this command." >&2 21 echo "Your dictionary file: $okaywords" >&2 22 exit 1 23 fi 24 25 for filename 26 do 27 $spell -a < $filename | \ 28 grep -v '@(#)' | sed "s/\'//g" | \ 29 awk '{if(length($0) > 15 && length($2) > 2) print $2}' | \ 30 grep -vif $okaywords | \ 31 grep '[[:lower:]]' | grep -v '[[:digit:]]' | sort -u | \ 32 sed 's/^/ /' > $tempout 33 34 if [ -s $tempout ]; then 35 sed 's/^/${filename}: /' $tempout 36 fi 37 done 38 39 exit 0
运行脚本:
这个脚本需要在命令行上提供一个或多个文件名
运行结果:
首先,一个空的个人字典,txt内容摘录自爱丽丝漫游记: $ spelldict ragged.txt ragged.txt: herrself ragged.txt: teacups ragged.txt: Gryphon ragged.txt: clamour 有两个词拼错了,所以准备用echo命令把它们加到okaywords文件中:$ echo "Gryphon" >> ~/.okaywords $ echo "teacups" >> ~/.okaywords 扩展了词典文件后的检查结果如下:$ spelldict ragged.txt ragged.txt: herrself ragged.txt: clamour
ps: 这3章的单词检查,对我个人而言真的很无趣。期待后续的精彩脚本吧。
转载于:https://www.cnblogs.com/lalala23456/archive/2013/01/07/2848788.html
第三章:Creating Utilities--27.增加一个本地词典相关推荐
- 读书笔记: C# 7.0 in a nutshell (第 三 章 Creating Types in C#)
内容: 第三章: C#中创建类型 类 继承 object类型 struct 访问修饰符 接口 枚举 嵌套类 泛型 1. Classes 典型的class定义: class YourClassName ...
- 优惠券系统-第三章-活动中心
优惠券系统-第三章介绍 本文主要设计一个基于送券,送积分等的活动中心. 活动中心设计 活动中心主要是有各种活动,比如双十一活动,可能参加一个活动会送多个优惠券,某一个活动送大礼包还可能包含了积分(类似 ...
- 第2章 创建你的第一个 LISP 程序 Creating Your First Lisp Progr
2019独角兽企业重金招聘Python工程师标准>>> 第2章 创建你的第一个 LISP 程序 Creating Your First Lisp Program 翻译者:FreeBl ...
- C# 线程手册 第三章 使用线程 实现一个数据库连接池(实战篇)
在企业级软件开发过程中,为了改善应用程序的性能需要通常使用对象池来控制对象的实例化.例如,在我们每次需要连接一个数据库时都需要创建一个数据库连接,而数据库连接是非常昂贵的对象.所以,为了节省为每次数据 ...
- )类 新建javafx程序时_第三章 第一个OpenCV的JavaFX应用程序.md
# 第三章 第一个OpenCV的JavaFX应用程序 --- ***注意***:我们假设您现在已经阅读了之前的教程.如果没有,请在[http://opencv-java-tutorials.readt ...
- 【蓝桥杯嵌入式主板G4】第三章 点亮一个LED
第一节 硬件解读 任何一个实验都是从点亮一个LED开始的,本次将教大家如何用stm32cubeMX+MDK在蓝桥杯嵌入式主板上面点亮一个LED. 先看蓝桥杯嵌入式主板的原理图:从图中可以看出一共有8个 ...
- 开发一个简单网站--第三章:相知
第三章:相知 <12>.搜索用户search.php <13>.搜索用户后台getsearchdata.php <14>.搜索论坛(投票)fourum.php &l ...
- 【人工智能简史】第三章 第一个AI研究的黄金时代
目录 编辑 第三章 第一个 AI 研究的黄金时代 第一节:早期 AI 研究的背景与突破
- 给定一个函数做其最佳平方逼近c语言,第三章 函数逼近 — 最佳平方逼近.
第三章 函数逼近 - 最佳平方逼近 内容提要 最佳平方逼近 最佳平方逼近函数.多项式 利用正交多项式计算最佳平方逼近多项式 Chebyshev 级数与最佳一致逼近 最佳平方逼近 什么是最佳平方逼近 设 ...
最新文章
- 基于TPF111芯片的交流信号幅值检测
- 在SDN走向商用部署的路上,锐捷网络一直在不断实践
- Pandas简明教程:四、Pandas数据索引方式
- 云视睿博流媒体服务器Lit,《云视睿博流媒体服务器参数表.docx
- python解决最优化问题_python实现最优化算法
- 构建高性能ASP.NET站点 第六章—性能瓶颈诊断与初步调优(下前篇)—简单的优化...
- vue项目引入CNZZ数据专家(方法汇总篇)
- android用IO实现日记的读写,android开发实现文件读写
- 嵌入式软件开发好,还是硬件开发好?
- 常见的windows 命令大全
- Meshing Tutorials(网格划分教程)
- 2017 EC-Final A Chat Grou
- 微信小程序赞赏功能,非微信赞赏功能
- Linux环境下使用阿里云盘
- yigo2.0定时器集合
- java 给pdf文档加水印
- So easy!非技术人员也能学会的土狗防骗技巧!
- vue打包上线的代理问题
- oracle连接另外一个oracle,Oracle 连接 另一个Oracle数据库 服务器连接
- 【zt】克服当众怕羞的心理1
热门文章
- 随机生成一个质数的python代码_使用质数生成随机密码
- 编写ShellCode
- 如何通俗理解beta分布?
- Linux一些经典书籍
- CF-567F(President and Roads) DAG必经边
- HDU-5249 KPI(STL or 权值线段树)
- mysql删除表命令语句_MySQL增删改查语句命令(一)
- 折纸机器人的步骤图解_儿童节特辑丨为你精选二十款超好玩的折纸玩具,这么多总有你的菜!...
- warning: ISO C++ forbids converting a string constant to ‘char*‘ [-Wwrite-strings]
- mysql如何explan优化sql_《MySQL数据库》MySQL 优化SQL(explain)