shell awk语法问题求教 50

awk'/Time/{a=($NF>="10:09:00"&&$NF<="10:11:00")}a'a谁帮忙解释一下这句语法解释具体一点谢谢a文件内容如下:-------... awk '/Time/ {a=($NF>="10:09:00"&&$NF<="10:11:00")}a' a

谁帮忙解释一下这句语法 解释具体一点 谢谢
a文件内容如下:
--------------------------------------------------------------------
# Time: 130912 10:08:43
...(很多内容 省略)
# Time: 130912 10:09:38
...
# Time: 130912 10:10:02
...
# Time: 130912 10:11:43
...
--------------------------------------------------------------------

这条语句是如何实现将 下面内容 全显示出来的。而不是仅显示了符合条件的time那条记录。
[root@localhost tmp]# awk '/Time/ {a=($NF>="10:09:00"&&$NF<="10:11:00")}a' a
# Time: 130912 10:09:38
...(还有很多内容)
# Time: 130912 10:10:02
...
展开
 我来答
miniapp30ckv39LZ7vSp
2013-09-26 · TA获得超过743个赞
知道小有建树答主
回答量:349
采纳率:0%
帮助的人:477万
展开全部

/Time/ 表示模式,行中包含Time关键字的执行后面{}中的操作;

a=() 表示一个赋值操作;

$NF,其中NF表示字段的个数,$NF表示以字段的个数作为变量返回,例如NF的数值为2,则$NF=$2,其中$2表示第二个字段的内容;

上述的意思是如果$NF的值在10:09:00和10:11:00之间,就将判断的值赋给变量a(a=1或者为真),并且打印到屏幕。


例如通过如下的示例进行测试:

[root@centos_x86_1 ~]# echo 'Time 10:09:01' | awk  '{a=($NF>="10:09:00"&&$NF<="10:11:00")}a'
Time 10:09:01

上述NF值是2,$NF即表示$2,$2的值是10:09:01,这个值是大于等于10:09:00并且小于等于10:11:00,所以会将满足的行输出到屏幕;


[root@centos_x86_1 ~]# echo 'Time 10:12:01' | awk  '{a=($NF>="10:09:00"&&$NF<="10:11:00")}a'   
[root@centos_x86_1 ~]#


上述示例中19:12:01由于不在10:09:00和10:11:00之间,所以不满足条件,就不会有输出。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
klainogn
2013-09-26 · TA获得超过130个赞
知道小有建树答主
回答量:435
采纳率:0%
帮助的人:290万
展开全部
a 文件中包含“Time”字符串的行中,(以空格作为域分隔符)最后一个域(应该是一个时间),此时间介于10:09:00---10:11:00之间,则a置为True,否则为False,如果a为True则打印此行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式