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
... 展开
谁帮忙解释一下这句语法 解释具体一点 谢谢
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
... 展开
2个回答
展开全部
/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之间,所以不满足条件,就不会有输出。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询