这里记录一下awk函数库的引用流程:
首先写自己的函数库,
这里有两个文件,测试引用单个或者多个库文件
1.print_arg.awk, 打印PROCINFO信息
function print_array(input_arg)
{
if(isarray(input_arg))
{
for(i in input_arg)
{
if(isarray(input_arg[i]))
{
print_array(input_arg[i]);
}
else
{
print i,input_arg[i];
}
}
}
}
2.show_real_fs.awk,识别当前的分隔规则
function show_real_fs()
{
if (PROCINFO["FS"] == "FS")
{
print "regular field splitting";
}
else if (PROCINFO["FS"] == "FIELDWIDTHS")
{
print "fixed-width field splitting";
}
else if (PROCINFO["FS"] == "FPAT")
{
print "content-based field splitting";
}
else
{
print "API input parser field splitting … (advanced feature)";
}
}
将上面两个库文件放到test_lib目录下,接下来就是引用库文件,语法是这样的 @include “lib_path/lib_file”
awk '@include "test_lib/print_arg";@include "test_lib/show_real_fs"; END{print_array(PROCINFO); show_real_fs();}' test.csv
这里同时引用了print_arg和show_real_fs,这就是定义自己的库文件,并且引用库文件调用库函数的过程。