Sed和awk都很胜任自动单调的(automating monotonous)文本编辑任务,该任务一般在文本编辑器用交互方式完成的。Sed和awk都是基于流的,也就是说它们的输入来自文本文件中——一次得到一行——然后产生标准输出。
Sed主要用于对单个或多个文件的重复编辑。Awk,做为一种编程语言,可以用来处理结构化的数据,然后产生格式化的报告。Sed和awk都可以像外壳脚本(shell script)那样被执行;每一个动作都是顺序运行的。Sed脚本通常用于简单任务,如完成条目(如从一个或者一系列文件中获取的方法的名字)的连接。Awk更适合完成复杂的任务,如重新格式化数据或建立定制报告(custom report)。
Awk是一个完整的编程语言,它的作用不限于sed那样的文本编辑器。Awk擅长从系统记录(system log)或来自数据库(该数据库基于文本)的数据来生成报告。然而,为了发挥awk的用处,数据必须是结构化的,这是awk本身所决定的。
表A
sed |
awk |
|
|
Sed和awk的常见用法
Sed与awk使用类似的语法,这就简化了对它们的学习过程。Sed程序由命令行组成,而awk程序是由编程语句和函数组成的。