所有从一开始沿着awk的系列多达12个部分 ,我们一直在写小awk的命令,并在命令行分别在shell脚本程序。
然而,awk的 ,正如Shell,也是一种解释语言,因此,我们从这个系列赛开始走通过所有,你可以写信awk的可执行脚本。
类似于我们如何编写shell脚本,Awk脚本从行开始:
#! /path/to/awk/utility -f
例如我的系统上,awk的实用程序位于/ usr / bin中/ awk的 ,因此,我将开始一个awk脚本如下:
#! /usr/bin/awk -f
解释上面的行:
-
#!
-被称为家当 ,指定在脚本中的指令的解释 -
/usr/bin/awk
-是解释 -
-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语言程序设计
对于您想分享或问题的任何想法,请使用下面的评论表。 记住要始终保持连接到youcl更多精彩系列。