我需要在awk
中执行绝对值计算。
但awk
中没有内置绝对值,因此我的awk
命令很多都是这样的:
awk 'function abs(x){return ((x < 0.0) ? -x : x)} { ...calls to "abs" .... }' file
有没有办法在文件中存储用户定义的awk
函数,并且awk
会在调用时自动加载这些函数?
设置awk
“包括”路径或用户个人资料,就像对bash和其他程序一样。
答案 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)}'