awk:自动从文件中调用函数

时间:2014-09-26 15:27:27

标签: awk gawk

我需要在awk中执行绝对值计算。

awk中没有内置绝对值,因此我的awk命令很多都是这样的:

awk  'function abs(x){return ((x < 0.0) ? -x : x)}  { ...calls to "abs" .... }'  file

有没有办法在文件中存储用户定义的awk函数,并且awk会在调用时自动加载这些函数?

设置awk“包括”路径或用户个人资料,就像对bash和其他程序一样。

2 个答案:

答案 0 :(得分:2)

您可以使用@include "file"导入文件。

e.g。创建名为func_lib的文件:

function abs(x){
    return ((x < 0.0) ? -x : x)
}

然后将其与awk包含在内:

awk '@include "func_lib"; { ...calls to "abs" .... }'  file

答案 1 :(得分:1)

也可以尝试

$ cat function_lib.awk
  function abs(x){
      return ((x < 0.0) ? -x : x)
 }

像这样调用函数

$ awk -f function_lib.awk --source 'BEGIN{ print abs(-1)}'