如何编写脚本使用Awk编程语言 - 第13部分

从Awk系列的开始,我们一直在写小Awk命令和程序,现在是使用awk命令编写脚本的时候了。

所有从一开始沿着awk的系列多达12个部分 ,我们一直在写小awk的命令,并在命令行分别在shell脚本程序。

然而,awk的 ,正如Shell,也是一种解释语言,因此,我们从这个系列赛开始走通过所有,你可以写信awk的可执行脚本。

类似于我们如何编写shell脚本,Awk脚本从行开始:

#! /path/to/awk/utility -f 

例如我的系统上,awk的实用程序位于/ usr / bin中/ awk的 ,因此,我将开始一个awk脚本如下:

#! /usr/bin/awk -f 

解释上面的行:

  1. #! -被称为家当 ,指定在脚本中的指令的解释
  2. /usr/bin/awk -是解释
  3. -f -翻译选项,用来读取程序文件

也就是说,让我们现在来看看一些Awk可执行脚本的例子,我们可以从下面的简单脚本开始。 使用您喜欢的编辑器打开一个新文件,如下所示:

$ vi script.awk

并将以下代码粘贴到文件中:

#!/usr/bin/awk -f 
BEGIN { printf "%s\n","Writing my first Awk executable script!" }

保存文件并退出,然后通过发出以下命令使脚本可执行:

$ chmod +x script.awk

然后,运行它:

$ ./script.awk
示例输出
Writing my first Awk executable script!

一个关键的程序员在那里一定会问,“哪里有意见吗?”是的,你也可以在您的awk脚本注释。 在代码中写评论总是一个好的编程实践。

它可以帮助其他程序员查看代码,以了解您在脚本或程序文件的每个部分中尝试实现的内容。

因此,您可以在脚本中包含以下注释。

#!/usr/bin/awk -f 
#This is how to write a comment in Awk
#using the BEGIN special pattern to print a sentence 
BEGIN { printf "%s\n","Writing my first Awk executable script!" }

接下来,我们将看一个例子,我们从文件中读取输入。 我们要搜索的帐户文件,/ etc / passwd文件 aaronkilik命名系统用户,然后打印用户名,用户ID和用户GID如下:

下面是我们的脚本second.awk称为内容。

#! /usr/bin/awk -f 
#use BEGIN sepecial character to set FS built-in variable
BEGIN { FS=":" }
#search for username: aaronkilik and print account details 
/aaronkilik/ { print "Username :",$1,"User ID :",$3,"User GID :",$4 }

保存文件并退出,使脚本可执行并执行如下:

$ chmod +x second.awk
$ ./second.awk /etc/passwd
示例输出
Username : aaronkilik User ID : 1000 User GID : 1000

在下面的最后一个例子,我们将使用做while语句0-10打印出来的数字:

下面是我们的脚本叫do.awk的内容。

#! /usr/bin/awk -f 
#printing from 0-10 using a do while statement 
#do while statement 
BEGIN {
#initialize a counter
x=0
do {
print x;
x+=1;
}
while(x<=10)
}

保存文件后,使脚本可执行,就像以前一样。 之后,运行它:

$ chmod +x do.awk
$ ./do.awk
示例输出
0
1
2
3
4
5
6
7
8
9
10

概要

我们来到这个月底有趣的awk的系列 ,我希望你已经学到了很多东西从所有13个部分,以介绍awk的编程语言。

正如我从一开始提到的,Awk是一种完整的文本处理语言,因此,您可以了解更多其他方面的Awk编程语言,如环境变量,数组,函数(内置和用户定义)等。

还有Awk编程的其他部分要学习和掌握,所以,下面,我提供了一些链接到重要的在线资源,你可以用来扩展你的Awk编程技能,这些不一定是你需要的,你也可以看出了有用的Awk编程书。

相关链接该GNUAwk用户指南AWK语言程序设计

对于您想分享或问题的任何想法,请使用下面的评论表。 记住要始终保持连接到Howtoing更多精彩系列。