AWK基本语法

AWK使用简单,我们可以直接从命令行提供AWK或在具有AWK命令的文本文件的形式的命令。本教程介绍调用AWK的例子,这两个方法:

AWK命令行

以下是我们可指定单引号在命令行本身AWK命令的形式:

awk [options] file ...

示例

考虑我们有一个文本文件marks.txt将要处理,它有以下内容:

1)    Amit     Physics    802)    Rahul    Maths      903)    Shyam    Biology    874)    Kedar    English    855)    Hari     History    89

让我们使用AWK显示如下文件的全部内容:

[jerry]$ awk '{print}' marks.txt 

在执行上面的代码后,得到以下结果:

1)    Amit     Physics    802)    Rahul    Maths      903)    Shyam    Biology    874)    Kedar    English    855)    Hari     History    89

AWK程序文件

以下是第二种形式,提供AWK命令在脚本文件中:

awk: cmd. line:1: warning: empty program text on command lineawk: cmd. line:1: warning: source file does not end in newlineawk: warning: no program text at all!

--posix 选项

此选项打开严格的POSIX兼容,其中所有普通和awk特定的扩展将被禁用。

--profile[=file] 选项

这个选项生成文件的程序相当于打印版本。默认的文件是awkprof.out。下面简单的例子说明了这一点:

[jerry]$ awk --profile 'BEGIN{printf"---|Header|--n"} {print} END{printf"---|Footer|---n"}' marks.txt > /dev/null [jerry]$ cat awkprof.out

在执行上面的代码后,得到以下结果:

# gawk profile, created Sun Oct 26 19:50:48 2014 # BEGIN block(s) BEGIN { printf "---|Header|--n" } # Rule(s) { print {#content#} } # END block(s) END { printf "---|Footer|---n" }

--traditional 选项

此选项可以禁用所有gawk特定的扩展。

--version 选项

此选项显示AWK程序的版本信息。

[jerry]$ awk --version

当上述代码被执行时,它会产生以下结果:

GNU Awk 4.0.1Copyright (C) 1989, 1991-2012 Free Software Foundation.