如何在 awk 中使用用户定义的函数
www. On IT Road .com

用户定义函数

我们可以使用 func 或者 function 关键字在 awk 脚本文件中创建用户定义的函数。
在文件中的位置并不重要;函数定义可以出现在 awk 脚本中的任何地方。

该函数可以接受参数(仅限函数局部)或者使用任何现有变量。

函数定义的语法是:

func function_name ([optional_arg] . . .) { statements }

或者

function function_name ([optional_arg] . . .) { statements }

function_name 是在程序中的其他某个点调用函数的方式。
参数是允许的,但不是必需的。
在函数的定义中,只需要参数的名称。
这些参数只能在函数体(花括号内的语句)中访问。
但是,我们可以从函数内部访问 awk 脚本中正在使用的任何其他变量。

例如:

$ cat func.awk 
func MAX(val1, val2) { 
        if (val1 > val2)
	        return val1 
        else 
	        return val2
	                 } 
BEGIN {largest = 0}
{largest = MAX(largest, )} 
END {print largest}
$ awk -f func.awk data.file 
5.7

我们可以使用 return 语句从函数返回一个值。
使用此返回值为变量赋值或者使用 if 语句执行某种测试。
为了执行这样的测试,在 if 语句中调用该函数。
如果函数返回非零值,则 if 语句认为测试为真;如果函数返回零值,则 if 语句认为测试为假,并且不执行 if 语句;例如:

if (function_call()) { statements }
日期:2020-09-17 00:13:59 来源:oir作者:oir