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程序的版本信息。
[jerry]$awk --version
执行此代码后,将产生以下输出-
GNU Awk 4.0.1 Copyright (C) 1989, 1991-2012 Free Software Foundation.
参考链接
https://www.learnfk.com/awk/awk-basic-syntax.html
标签:选项,教程,--,无涯,jerry,awk,file,AWK From: https://blog.51cto.com/u_14033984/7967619