Unix awk的调用方式方面的知识介绍

系统 其他OS
Unix awk命令行,你可以象使用普通Unix命令一样使用awk,在命令行中你也可以使用awk程序设计语言,虽然awk支持多行的录入,但是录入长长的命令行并保证其正确无误却是一件令人头疼的事

Unix操作系统有很多值得学习的地方,我们今天来讲解一下Unix awk的调用方式方面的知识。我们曾经说过,Unix awk提供了适应多种需要的不同解决方案,它们是:

一、Unix awk命令行,你可以象使用普通Unix命令一样使用awk,在命令行中你也可以使用awk程序设计语言,虽然awk支持多行的录入,但是录入长长的命令行并保证其正确无误却是一件令人头疼的事,因此,这种方法一般只用于解决简单的问题。当然,你也可以在shell script程序中引用awk命令行甚至awk程序脚本。

二、使用-f选项调用Unix awk程序。awk允许将一段awk程序写入一个文本文件,然后在awk命令行中用-f选项调用并执行这段程序。具体的方法我们将在后面的awk语法中讲到。

三、利用命令解释器调用awk程序:利用Unix支持的命令解释器功能,我们可以将一段awk程序写入文本文件,然后在它的***行加上:
#!/bin/awk -f
并赋予这个文本文件以执行的权限。这样做之后,你就可以在命令行中用类似于下面这样的方式调用并执行这段awk程序了。

$awk脚本文本名 待处理文件

Unix awk的语法:

与其它Unix命令一样,Unix awk拥有自己的语法:
awk [ -F re] [parameter...] ['prog'] [-f progfile][in_file...]

参数说明:
-F re:允许Unix awk更改其字段分隔符。
parameter: 该参数帮助为不同的变量赋值。
'prog': awk的程序语句段。这个语句段必须用单拓号:'和'括起,以防被shell解释。这个程序语句段的标准形式为:
'pattern {action}'

其中pattern参数可以是egrep正则表达式中的任何一个,它可以使用语法/re/再加上一些样式匹配技巧构成。与sed类似,你也可以使用","分开两样式以选择某个范围。

关于匹配的细节,你可以参考附录,如果仍不懂的话,找本Unix书学学grep和sed(本人是在学习ed时掌握匹配技术的)。action参数总是被大括号包围,它由一系统Unix awk语句组成,各语句之间用";"分隔。

Unix awk解释它们,并在pattern给定的样式匹配的记录上执行其操作。与shell类似,你也可以使用“#”作为注释符,它使“#”到行尾的内容成为注释,在解释执行时,它们将被忽略。

你可以省略pattern和action之一,但不能两者同时省略,当省略pattern时没有样式匹配,表示对所有行(记录)均执行操作,省略action时执行缺省的操作――在标准输出上显示。

-f progfile:允许awk调用并执行progfile指定有程序文件。progfile是一个文本文件,他必须符合Unix awk的语法。

in_file:awk的输入文件,Unix awk允许对多个输入文件进行处理。值得注意的是awk不修改输入文件。如果未指定输入文件,awk将接受标准输入,并将结果显示在标准输出上。awk支持输入输出重定向。

【编辑推荐】

  1. 关于Unix系统线路图的简单介绍
  2. Unix系统的心脏Unix文件系统
  3. 总结关于Unix系统相关的经验教训
  4. 对Unix系统发展期和现况的了解
  5. 学习Unix系统知识的一些经验之谈
责任编辑:小霞
相关推荐

2010-05-11 11:29:11

Unix awk

2010-05-11 10:43:10

Unix awk

2010-05-11 13:33:22

Unix awk

2010-04-30 01:00:08

Unix shell

2010-04-30 14:55:09

Unix系统

2010-05-11 19:08:36

Unix系统

2010-04-29 16:06:07

Unix系统

2010-04-14 17:54:06

2009-12-22 15:14:33

WCF调用

2010-05-11 11:34:44

2010-04-21 17:10:25

Unix信号量

2010-05-11 12:53:58

Unix awk

2010-05-11 10:29:06

Unix awk

2010-05-11 13:22:50

Unix awk

2010-05-11 13:16:21

Unix awk

2010-04-22 10:00:41

Oracle数据字典

2010-01-08 16:01:16

华为交换机端口

2010-01-19 13:27:41

交换机端口

2010-04-27 14:11:05

点赞
收藏

51CTO技术栈公众号