AWK用户自定义函数

时间:2022-07-31 09:42:33

函数是程序的基本组成部分。 AWK允许我们定义自己的函数。一个大项目可以分为多个函数并且每个函数可以写/独立测试。它提供了可重用性的代码。

下面给出的是用户自定义函数的一般格式为:

function function_name(argument1, argument2, ...)
{
	function body
}

在上面的语法:

function_name是用户定义函数的名称。函数名称应以字符的字母并且其余部分可以是数字,字母或下划线的任意组合。 AWK的保留字不能被用作函数名称。

函数可以接受以逗号分隔的多个参数。参数不是强制性的。我们也可以创建一个用户定义的函数不带任何参数。

函数体由一个或多个AWK语句组成。

让我们写两个函数计算最小和最大数,从main函数中调用这些函数。我们functions.awk文件是这样的:

# Returns minimum number
function find_min(num1, num2)
{
  if (num1 < num2)
    return num1
  return num2
}

# Returns maximum number
function find_max(num1, num2)
{
  if (num1 > num2)
    return num1
  return num2
}

# Main function
function main(num1, num2)
{
  # Find minimum number
  result = find_min(10, 20)
  print "Minimum =", result
  
  # Find maximum number
  result = find_max(10, 20)
  print "Maximum =", result
}

# Script execution starts here
BEGIN {
  main(10, 20)
}

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

Minimum = 10
Maximum = 20
 


FROM:  http://www.yiibai.com/awk/awk_user_definede_functions.html