AWK - 基本语法

AWK - 基本语法 首页 / Awk入门教程 / AWK - 基本语法

AWK易于使用,我们可以直接从命令行提供AWK命令,也可以以包含AWK命令的文本文件的形式提供AWK命令。

AWK命令行

我们可以在命令行的单引号内指定AWK命令,如下所示-

无涯教程网

awk [options] file ...

考虑具有以下内容的文本文件 marks.txt -

1) Learnfk     Physics    80
2) Toolfk    Maths      90
3) Chromefk    Biology    87
4) Poemfk    English    85
5) Nesfk     History    89

让我们使用AWK显示文件的完整内容,如下所示-

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

在执行此代码时,您将获得以下输出-

1) Learnfk     Physics    80
2) Toolfk    Maths      90
3) Chromefk    Biology    87
4) Poemfk    English    85
5) Nesfk     History    89

AWK程序文件

我们可以在脚本文件中提供AWK命令,如下所示-

awk [options] -f file ....

首先,创建一个包含AWK命令的文本文件 command.awk ,如下所示-

{print}

现在,我们可以指示AWK从文本文件读取命令并执行操作,在这里,我们获得了与上述示例相同的输出。

[jerry]$awk -f command.awk marks.txt

在执行此代码时,您将获得以下输出-

1) Learnfk  Physics 80
2) Toolfk Maths   90
3) Chromefk Biology 87
4) Poemfk English 85
5) Nesfk  History 89

AWK选项

AWK支持可以从命令行提供的以下标准选项。

-v 选项

此选项将值分配给变量,它允许在程序执行之前进行赋值。

[jerry]$awk -v name=Learnfk 'BEGIN{printf "Name=%s\n", name}'

在执行此代码时,您将获得以下输出-

Name=Learnfk

--dump-variables [= file] 选项

它打印全局变量的排序列表及其最终值到文件中,默认文件是 awkvars.out 。

[jerry]$awk --dump-variables ''
[jerry]$cat awkvars.out 

执行上述代码后,您将获得以下输出-

ARGC: 1
ARGIND: 0
ARGV: array, 1 elements
BINMODE: 0
CONVFMT: "%.6g"
ERRNO: ""
FIELDWIDTHS: ""
FILENAME: ""
FNR: 0
FPAT: "[^[:space:]]+"
FS: " "
IGNORECASE: 0
LINT: 0
NF: 0
NR: 0
OFMT: "%.6g"
OFS: " "
ORS: "\n"
RLENGTH: 0
RS: "\n"
RSTART: 0
RT: ""
SUBSEP: "\034"
TEXTDOMAIN: "messages"

--help 选项

此选项在标准输出上打印帮助消息。

[jerry]$awk --help

在执行此代码时,您将获得以下输出-

Usage: awk [POSIX or GNU style options] -f progfile [--] file ...
Usage: awk [POSIX or GNU style options] [--] 'program' file ...
POSIX options : GNU long options: (standard)
   -f progfile                --file=progfile
   -F fs                      --field-separator=fs
   -v var=val                 --assign=var=val
Short options : GNU long options: (extensions)
   -b                         --characters-as-bytes
   -c                         --traditional
   -C                         --copyright
   -d[file]                   --dump-variables[=file]
   -e 'program-text'          --source='program-text'
   -E file                    --exec=file
   -g                         --gen-pot
   -h                         --help
   -L [fatal]                 --lint[=fatal]
   -n                         --non-decimal-data
   -N                         --use-lc-numeric
   -O                         --optimize
   -p[file]                   --profile[=file]
   -P                         --posix
   -r                         --re-interval
   -S                         --sandbox
   -t                         --lint-old
   -V                         --version

--lint [= fatal] 选项

提供自变量致命时,它将警告消息视为错误。

[jerry]$awk --lint '' /bin/ls

在执行此代码时,您将获得以下输出-

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

--posix 选项

此选项打开严格的POSIX兼容性,在该兼容性中,所有常见和gawk扩展都被禁用。

--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 $0
   }

   # END block(s)

   END {
      printf "---|Footer|---\n"
   }

--traditional 选项

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

--version 选项

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

链接:https://www.learnfk.comhttps://www.learnfk.com/awk/awk-basic-syntax.html

来源:LearnFk无涯教程网

[jerry]$awk --version

执行此代码后,将产生以下输出-

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

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

深入拆解Tomcat & Jetty -〔李号双〕

OpenResty从入门到实战 -〔温铭〕

编辑训练营 -〔总编室〕

现代C++编程实战 -〔吴咏炜〕

图解 Google V8 -〔李兵〕

业务开发算法50讲 -〔黄清昊〕

大厂设计进阶实战课 -〔小乔〕

结构思考力 · 透过结构看思考 -〔李忠秋〕

手把手带你写一个 MiniTomcat -〔郭屹〕

好记忆不如烂笔头。留下您的足迹吧 :)