awk -F: '$3<5{next}END{print NR}' /etc/passwd

请解释一下这个语句的执行过程,特别是next的用法。... 请解释一下这个语句的执行过程,特别是next的用法。 展开
 我来答
喻逸2d
2010-08-20 · TA获得超过2399个赞
知道小有建树答主
回答量:534
采纳率:0%
帮助的人:247万
展开全部
我猜你这句话本意是想查到user_ID大于5的用户个数吧!可是这样是做不到的,这样写统计的永远是总用户数。
首先:next的用法:强迫awk立刻停止处理当前的记录,而开始读取和处理下一条记录。更通俗一点讲:比如,你正在排队办理入学手续,人家看你还没交费,就next,下一个过来办,你先到财务交费之后再过来……。而NR是统计AWK读入的记录数,awk每读取一条记录,首先比较一下user_id是否小于5,如果小于5的话,就跳过读取下一条记录,因此虽然跳过了,但是已经被awk读入了,只是执行了next以后就不执行next之后的处理代码了!
不知道我说明白了没有??你如果真是想实现我开始说的那个要求的话,可以给个变量进行计数,不要用NR!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式