如何从AWK论证中获取NF?

时间:2013-11-01 08:23:04

标签: unix awk argv

我一直试图在awk中从2个参数(不是文件)中获取NF而没有成功。

这是命令行:

awk -f the_program 12/12/2013 11/11/2014

有可能管道ARGV [1]或ARGV [2]如何获取NF来获取? 我想获得NF,所以我可以在用它们做其他事之前轻松验证参数

3 个答案:

答案 0 :(得分:2)

你可以用纯aw​​k:

来做
$ 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

如果没有,发布一些预期的输出并解释原因。