【发布时间】:2014-02-01 22:17:41
【问题描述】:
我正在尝试理解 shell 脚本中的 gawk。
这个命令是如何工作的?
gawk -vN="$N"
这个拆分基于什么
n=patsplit($0,a,/\<\w*\>/,s)
还有这个
PROCINFO["sorted_in"]="@val_num_desc"
它是如何工作的?
【问题讨论】:
-
@grebneke 我想知道这些命令是如何工作的?
我正在尝试理解 shell 脚本中的 gawk。
这个命令是如何工作的?
gawk -vN="$N"
这个拆分基于什么
n=patsplit($0,a,/\<\w*\>/,s)
还有这个
PROCINFO["sorted_in"]="@val_num_desc"
它是如何工作的?
【问题讨论】:
第一个命令将参数传递给gawk。参数是N,分配给N的值是bash变量$N的值。
第二个命令根据正则表达式 /\<\w*\>/ 将 awk 变量 $0 拆分为字符串。它返回它能够拆分的字符串数。见http://www.gnu.org/software/gawk/manual/gawk.html#String-Functions。正则表达式由\<(单词边界开始)、\w(单词组成)、\>(单词边界结束)组成。见http://www.gnu.org/software/gawk/manual/gawk.html#GNU-Regexp-Operators
第三条命令是gawk 4.1 版的一个特殊功能。用于按特定顺序遍历数组(在for 循环中)。见http://www.gnu.org/software/gawk/manual/gawk.html#Scanning-an-Array
【讨论】:
a 是字符串数组。见手册:gnu.org/software/gawk/manual/gawk.html#String-Functions
stored value 是什么意思?