我一直试图从 awk 中的 2 个参数(不是文件)中获取 NF,但没有成功。
这是命令行:
awk -f the_program 12/12/2013 11/11/2014
是否有可能通过管道 ARGV[1] 或 ARGV[2] 到 getline 以获得 NF?我想获得 NF,这样我就可以在对它们进行其他操作之前轻松验证这些参数
您可以在纯 awk 中执行此操作:
$ awk -F/ 'BEGIN{for (i=1;i<ARGC;i++) {print split(ARGV[i], a) }}' 12/12/2013 11/11/2014
3
3
我不确定是否可以单独使用awk
. 尝试bash
在它周围使用包装脚本。
脚本文件
#!/bin/bash
awk 'BEGIN {
RS=" "; FS="/";
}
{
print NF;
}' <(echo $*)
测试
% myscript.sh 12/12/2013 11/11/2014
3
3
或者按照@fedorqui的建议消除使用echo
with<<<
#!/bin/bash
awk 'BEGIN {RS=" ";FS="/";} {print NF}' <<<$*
这就是你想要的吗?
$ awk 'BEGIN{ print ARGC - 1 }' 12/12/2013 11/11/2014
2
如果没有,请发布一些预期的输出并解释原因。