- 论坛徽章:
- 0
|
各位朋友,一个不是很理解的问题,请教一下
需求是:format1.log中的第三列数据与groupid1.log中的第一列相同时,就将groupid1.log中的第二列字符追加到format1.log的末尾,并且同样使用"-"作为分隔符
cat format1.log
2015.09.22_18:13:55-68515-192.168.36.201-网络:ping不可达发生在192.168.36.201-目标设备,在最后3次采集到的数据中,无法在ZabbixServer.
2015.09.22_18:13:57-68515-192.168.36.201-网络:ping不可达发生在192.168.36.201-目标设备,在最后3次采集到的数据中,无法在ZabbixServer.
cat groupid1.log
68515-74
68515-74
如上所示
awk -F '-' 'NR==FNR{a[$2]=$0;next}{print a[$1]"-"$2}' format1.log groupid1.log
已经得到正确结果,但是有几个问题,
1、NR == FNR的意思,就是说NR读取出的行数为12,34,而FNR读取的行数是12,12,此时的判读是因为NR的12和FNR的12相同,所以才会进入的循环吗?
2、a[$2]=$0;next的意思就是说循环读取format1.log文件中的所有数据吗?
3、{print a[$1]"-"$2}'输出的时候,a[$1]的作用是什么? $2我认为是groupid1.log中的第二列数据,但是a[$1]和a[$2]是有联系的吗?
很疑惑,求帮助,先谢谢各位了 |
|