awk:自动从文件调用函数
我需要在awk:自动从文件调用函数,awk,gawk,Awk,Gawk,我需要在awk中多次执行绝对值计算 但是绝对值没有内置在awk中,因此我的许多awk命令如下所示: awk 'function abs(x){return ((x < 0.0) ? -x : x)} { ...calls to "abs" .... }' file awk'函数abs(x){return((x
awk
中多次执行绝对值计算
但是绝对值没有内置在awk
中,因此我的许多awk
命令如下所示:
awk 'function abs(x){return ((x < 0.0) ? -x : x)} { ...calls to "abs" .... }' file
awk'函数abs(x){return((x<0.0)?-x:x)}{…调用“abs”…}文件
是否有办法将用户定义的awk
函数存储在文件中,并让awk
在调用时自动加载这些函数?
类似于设置
awk
“include”路径或用户配置文件,与bash和其他程序的设置方式大致相同。您可以使用@include“file”
导入文件
e、 g.创建名为func_lib
的文件:
function abs(x){
return ((x < 0.0) ? -x : x)
}
也尝试
$ cat function_lib.awk
function abs(x){
return ((x < 0.0) ? -x : x)
}
正如@Basilevs posted链接所述,您可以使用
@include“file”
导入文件。我想您也可以将awk
别名为awk-I funcs.awk
,但我每次都必须这样做。。。我想马克·塞切尔的评论最适合你的具体用途,也许是最好的。这取决于您想如何调用awk
。仅将其包含在需要外部功能的特定awk
程序中可能是有意义的。此外,如果使用awk
脚本,则在顶部执行所有@include
s似乎更实际,而不是将每个都传递给-i
命令行参数。
$ cat function_lib.awk
function abs(x){
return ((x < 0.0) ? -x : x)
}
$ awk -f function_lib.awk --source 'BEGIN{ print abs(-1)}'