我一直试图在awk中从2个参数(不是文件)中获取NF而没有成功。
这是命令行:
awk -f the_program 12/12/2013 11/11/2014
有可能管道ARGV [1]或ARGV [2]如何获取NF来获取? 我想获得NF,所以我可以在用它们做其他事之前轻松验证参数
答案 0 :(得分:2)
你可以用纯awk:
来做$ awk -F/ 'BEGIN{for (i=1;i<ARGC;i++) {print split(ARGV[i], a) }}' 12/12/2013 11/11/2014
3
3
答案 1 :(得分:1)
我不确定是否可以使用awk
单独完成。尝试使用包装器bash
脚本。
<强> myscript.sh 强>
#!/bin/bash
awk 'BEGIN {
RS=" "; FS="/";
}
{
print NF;
}' <(echo $*)
测试
% myscript.sh 12/12/2013 11/11/2014
3
3
根据 @fedorqui
的建议,取消echo
与<<<
的使用
#!/bin/bash
awk 'BEGIN {RS=" ";FS="/";} {print NF}' <<<$*
答案 2 :(得分:0)
这就是你想要的吗?
$ awk 'BEGIN{ print ARGC - 1 }' 12/12/2013 11/11/2014
2
如果没有,发布一些预期的输出并解释原因。