UNIX文本处理工具与awk编程语言详解
1. sed的流控制机制
sed虽然语法对于有经验的计算机用户来说都很复杂,但它确实具备流控制机制。经过思考和实践后,你可以用sed设计出编辑程序。我们很容易设想一个包含编辑“子例程”的sed脚本(不过执行起来更难),这些子例程可以通过标签跳转,对文件的不同部分执行不同操作,并在满足某些条件时退出。虽然很少有人会做到这么深入,但理解这个工具的能力范围很重要。说不定哪天你遇到一个棘手的任务,要花费大量时间重复操作才能完成,这时你可能就会想:“等等!我打赌用sed能搞定。”
2. 自制校对工具proof
现在来看一个更复杂的脚本proof,它很少使用sed,但大量运用了shell编程。这是一个用shell构建的成熟工具的示例,其功能比组成它的任何单个工具都强大得多。
proof脚本使用 spell 检查文件中的拼写错误,显示出错的上下文行,然后用sed进行修正。由于很多文档包含技术术语、专有名词等会被标记为错误的内容,该脚本还会创建并维护一个本地字典文件,用于存放不应被标记为拼写错误的例外词汇。
下面是脚本的示例运行过程:
$ proof sect1
Do you want to use a local dictionary?
If so, enter
the name or press RETURN for the default dictionary: <CR>
Using local dictionary file dict
working ...
The word
超级会员免费看
订阅专栏 解锁全文
3974

被折叠的 条评论
为什么被折叠?



