打印本文 打印本文 关闭窗口 关闭窗口
AWK :Linux 管理员的智能工具包
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2911  更新时间:2009/4/22 23:08:20  文章录入:mintao  责任编辑:mintao

WILLIAM WOOD

MUNCIE IN

SARAH FERGUS

MUNCIE IN

SARAH BUCK

MUNCIE IN

BOB TUTTLE

MUNCIE IN

$

注意,在源文件中的任何地方或者在命令行中调用它时,不使用单引号。单引号只用于区别命令行中的命令与文件名称。

如果简单的输出不能处理您的程序中所需要的复杂信息,则可以尝试由 printf 命令获得的更加复杂的输出,其语法是

printf( format, value, value ...)

该语法类似于 C 语言中的 printf 命令,而格式的规格是相同的。通过插入一项定义如何打印数值的规格,可以定义该格式。格式规格包含一个跟有字母的 % 。类似于打印命令, printf 不必包含在圆括号中,但是可以认为使用圆括号是一种良好的习惯。

下表列出 printf 命令提供的各种规格。

规格

说明

%c

打印单个 ASCII 字符

%d

打印十进制数

%e

打印数字的科学计数表示

%f

打印浮点表示

%g

打印 %e 或 %f ;两种方式都更简短

%o

打印无符号的八进制数

s

打印 ASCII 字符串

%x

打印无符号的十六进制数

%%

打印百分号;不执行转换

可以在 % 与字符之间提供某些附加的格式化参数。这些参数进一步改进数值的打印方式:

参数

说明

-

将字段中的表达式向左对齐

,width

根据需要将字段补齐到指定宽度(前导零使用零将字段补齐)

.prec

小数点右面数字的最大字符串宽度或最大数量

 

printf 命令能够控制并将数值从一种格式转换为另一种格式。当需要打印变量的值时,只需提供一种规格,指示 printf 如何打印信息(通常包含在双引号中)即可。必须为每个传递到 printf 的变量包含一个规格参数;如果包含过少的参数,则 printf 不会打印所有的数值。

处理错误

AWK 工具报告所发生错误的方式很令人恼火。一个错误会阻碍任何操作的进行,所提供的错误信息非常含混不清:

awk: syntax error near line 2

awk: bailing out near line 2

您可能会花几小时的时间查看第 2 行,试图找出它为什么阻碍程序运行;这就是支持使用源文件的一个有力论据。

切记有两条规则可以帮助您避免出现语法错误:

1. 确保命令位于括号中,而括号位于单引号中。没有使用这些字符之一必然导致程序无法运行。

2. 搜索命令需要位于斜线之间。要找出住在印第安那州的员工,您必须使用 “ /IN/ ” 而不是 “ IN ” 。

结论

尽管 AWK 完全代表另外的含意,但它应该是管理员智能工具包的首字母缩写。连同 SED 一起, AWK 实用工具是 Linux 管理员所拥有的功能最强大和灵活的工具之一。通过了解其语言的一些特性,您可以开辟出能够简化任务的领域,否则这些任务将会是非常费时和困难的。

Emmett Dulaney ( edulaney@iquest.net ) 获得了 18 种供应商认证。他编写了数本关于 Linux 、 UNIX 和认证研究的书籍,并在许多会议上进行了演讲,而且他是 Mercury Technical Solutions 的前合作伙伴。

上一页  [1] [2] [3] [4] 

打印本文 打印本文 关闭窗口 关闭窗口