免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3292 | 回复: 15
打印 上一主题 下一主题

[文本处理] 求助一个awk NR=FNR问题 [复制链接]

论坛徽章:
1
巨蟹座
日期:2014-11-03 17:19:43
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-11-03 11:48 |只看该作者 |倒序浏览
求助一个awk 问题,先谢谢大家。
有2个文件
[root@user]# cat 172.17.0.150.inter.status
Gi1/0/2 connected
Gi1/0/3 connected
Gi1/0/5 connected
Gi1/0/6 connected
Gi1/0/7 connected
Gi1/0/9 connected
Gi1/0/11 connected
Gi1/0/13 connected
Gi1/0/16 connected
Gi1/0/17 connected
Gi1/0/18 connected
Gi1/0/26 connected
Gi1/0/28 connected
Gi1/0/32 connected
Gi1/0/33 connected
Gi1/0/35 connected
Gi1/0/37 connected
Gi1/0/38 connected
Gi1/0/40 connected
Gi1/0/41 connected
Gi1/0/42 connected
Gi1/0/43 connected
Gi1/0/45 connected
[root@user]# cat 172.17.0.150.mac.add     
40f2.e9cc.364a Gi1/0/3
40f2.e9ce.2392 Gi1/0/17
5cf3.fc94.a827 Gi1/0/18
e839.35b2.1200 Gi1/0/6
e839.35b2.1238 Gi1/0/7
e839.35b2.4520 Gi1/0/16
e839.35b2.4530 Gi1/0/11
e839.35b2.9618 Gi1/0/2
e839.35b3.2400 Gi1/0/9
e839.35b3.b6f0 Gi1/0/5
e839.35b3.f5b8 Gi1/0/13
想得到172.17.0.150.result
172.17.0.150 Gi1/0/2 connected e839.35b2.9618
172.17.0.150 Gi1/0/3 connected 40f2.e9cc.364a
172.17.0.150 Gi1/0/5 connected e839.35b3.b6f0
172.17.0.150 Gi1/0/6 connected e839.35b2.1200
172.17.0.150 Gi1/0/7 connected e839.35b2.1238
172.17.0.150 Gi1/0/9 connected e839.35b3.2400
172.17.0.150 Gi1/0/11 connected e839.35b2.4530
172.17.0.150 Gi1/0/13 connected e839.35b3.f5b8
172.17.0.150 Gi1/0/16 connected e839.35b2.4520
172.17.0.150 Gi1/0/17 connected 40f2.e9ce.2392
172.17.0.150 Gi1/0/18 connected 5cf3.fc94.a827
172.17.0.150 Gi1/0/26 connected
172.17.0.150 Gi1/0/28 connected
172.17.0.150 Gi1/0/32 connected
172.17.0.150 Gi1/0/33 connected
172.17.0.150 Gi1/0/35 connected
172.17.0.150 Gi1/0/37 connected
172.17.0.150 Gi1/0/38 connected
172.17.0.150 Gi1/0/40 connected
172.17.0.150 Gi1/0/41 connected
172.17.0.150 Gi1/0/42 connected
172.17.0.150 Gi1/0/43 connected
172.17.0.150 Gi1/0/45 connected

论坛徽章:
30
申猴
日期:2014-04-10 09:43:532015年亚洲杯纪念徽章
日期:2015-03-20 14:40:232015亚冠之阿尔纳斯尔
日期:2015-06-02 18:59:042015亚冠之阿尔希拉尔
日期:2015-06-30 15:22:572015亚冠之大阪钢巴
日期:2015-07-20 10:44:332015亚冠之阿尔纳斯尔
日期:2015-10-28 14:57:5215-16赛季CBA联赛之新疆
日期:2015-12-25 10:18:45黑曼巴
日期:2016-06-26 21:39:5315-16赛季CBA联赛之山西
日期:2016-07-25 21:54:2715-16赛季CBA联赛之北京
日期:2016-10-27 12:07:2315-16赛季CBA联赛之八一
日期:2017-07-07 16:39:0915-16赛季CBA联赛之吉林
日期:2017-09-04 12:14:43
2 [报告]
发表于 2014-11-03 12:03 |只看该作者
回复 1# knightgreener
awk 'FNR==NR{a[$2]=$1;next}{print substr(FILENAME,1,12),$2,$1,a[$1]}'  172.17.0.150.inter.status 172.17.0.150.mac.add


   

论坛徽章:
1
巨蟹座
日期:2014-11-03 17:19:43
3 [报告]
发表于 2014-11-03 12:16 |只看该作者
回复 2# zxy877298415


   
不过我这显示有点问题,[root@user]# awk 'FNR==NR{a[$2]=$1;next}{print substr(FILENAME,1,12),$2,$1,a[$1]}'  172.17.0.150.inter.status 172.17.0.150.mac.add
40f2.e9cc.364a /0/3
40f2.e9ce.2392 /0/17
5cf3.fc94.a827 /0/18
e839.35b2.1200 /0/6
e839.35b2.1238 /0/7
e839.35b2.4520 /0/16
e839.35b2.4530 /0/11
e839.35b2.9618 /0/2
e839.35b3.2400 /0/9
e839.35b3.b6f0 /0/5
e839.35b3.f5b8 /0/13
能大概帮我讲一下吗,非常感谢。

论坛徽章:
8
戌狗
日期:2014-09-26 16:39:44水瓶座
日期:2014-10-10 02:06:57金牛座
日期:2014-10-11 23:04:042015亚冠之首尔
日期:2015-06-23 15:37:0015-16赛季CBA联赛之天津
日期:2016-01-22 18:58:2915-16赛季CBA联赛之佛山
日期:2016-05-31 19:18:0815-16赛季CBA联赛之同曦
日期:2016-08-10 16:26:3315-16赛季CBA联赛之辽宁
日期:2018-01-10 11:47:40
4 [报告]
发表于 2014-11-03 12:25 |只看该作者
  1. awk  'BEGIN{T=substr(ARGV[1],1,12)}NR==FNR{a[$2]=$1}NR>FNR{if($1 in a){print T" "$0" "a[$1]}else{print T" "$0}}'  172.17.0.150.mac.add  172.17.0.150.inter.status
  2. 172.17.0.150 Gi1/0/2 connected e839.35b2.9618
  3. 172.17.0.150 Gi1/0/3 connected 40f2.e9cc.364a
  4. 172.17.0.150 Gi1/0/5 connected e839.35b3.b6f0
  5. 172.17.0.150 Gi1/0/6 connected e839.35b2.1200
  6. 172.17.0.150 Gi1/0/7 connected e839.35b2.1238
  7. 172.17.0.150 Gi1/0/9 connected e839.35b3.2400
  8. 172.17.0.150 Gi1/0/11 connected e839.35b2.4530
  9. 172.17.0.150 Gi1/0/13 connected e839.35b3.f5b8
  10. 172.17.0.150 Gi1/0/16 connected e839.35b2.4520
  11. 172.17.0.150 Gi1/0/17 connected 40f2.e9ce.2392
  12. 172.17.0.150 Gi1/0/18 connected 5cf3.fc94.a827
  13. 172.17.0.150 Gi1/0/26 connected
  14. 172.17.0.150 Gi1/0/28 connected
  15. 172.17.0.150 Gi1/0/32 connected
  16. 172.17.0.150 Gi1/0/33 connected
  17. 172.17.0.150 Gi1/0/35 connected
  18. 172.17.0.150 Gi1/0/37 connected
  19. 172.17.0.150 Gi1/0/38 connected
  20. 172.17.0.150 Gi1/0/40 connected
  21. 172.17.0.150 Gi1/0/41 connected
  22. 172.17.0.150 Gi1/0/42 connected
  23. 172.17.0.150 Gi1/0/43 connected
  24. 172.17.0.150 Gi1/0/45 connected
复制代码

论坛徽章:
30
申猴
日期:2014-04-10 09:43:532015年亚洲杯纪念徽章
日期:2015-03-20 14:40:232015亚冠之阿尔纳斯尔
日期:2015-06-02 18:59:042015亚冠之阿尔希拉尔
日期:2015-06-30 15:22:572015亚冠之大阪钢巴
日期:2015-07-20 10:44:332015亚冠之阿尔纳斯尔
日期:2015-10-28 14:57:5215-16赛季CBA联赛之新疆
日期:2015-12-25 10:18:45黑曼巴
日期:2016-06-26 21:39:5315-16赛季CBA联赛之山西
日期:2016-07-25 21:54:2715-16赛季CBA联赛之北京
日期:2016-10-27 12:07:2315-16赛季CBA联赛之八一
日期:2017-07-07 16:39:0915-16赛季CBA联赛之吉林
日期:2017-09-04 12:14:43
5 [报告]
发表于 2014-11-03 12:39 |只看该作者
回复 3# knightgreener
我的文件内容写反了,先写add文件在status就可以了!


   

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
6 [报告]
发表于 2014-11-03 12:42 |只看该作者
回复 3# knightgreener

OS, awk version ?


   

论坛徽章:
1
巨蟹座
日期:2014-11-03 17:19:43
7 [报告]
发表于 2014-11-03 13:35 |只看该作者
回复 4# wiliiwin

谢谢。我这2个文件的”Gi1/0/*“有问题,匹配不到一块,刚才把”Gi1/0/*“粘贴了一下,发现结果是正确的,我的文件有问题。
初学awk,有个疑问,在awk  'BEGIN{T=substr(ARGV[1],1,12)}NR==FNR{a[$2]=$1}NR>FNR{if($1 in a){print T" "$0" "a[$1]}else{print T" "$0}}'  172.17.0.150.mac.add.new  172.17.0.150.inter.status中,print后边的不太明白,“$0” 应该是第二个文件吧,“a[$1]”怎么是第一个文件里的内容呢?NR==FNR{a[$2]=$1}这个里面$1是干什么用的呢?

[root@user]# awk  'BEGIN{T=substr(ARGV[1],1,12)}NR==FNR{a[$2]=$1}NR>FNR{if($1 in a){print T" "$0" "a[$1]}else{print T" "$0}}'  172.17.0.150.mac.add.new  172.17.0.150.inter.status
172.17.0.150  Gi1/0/2 connected
172.17.0.150  Gi1/0/3 connected 40f2.e9cc.364a
172.17.0.150  Gi1/0/5 connected e839.35b3.b6f0
172.17.0.150  Gi1/0/6 connected e839.35b2.1200
172.17.0.150  Gi1/0/7 connected
172.17.0.150  Gi1/0/9 connected
172.17.0.150  Gi1/0/11 connected
172.17.0.150  Gi1/0/13 connected
172.17.0.150  Gi1/0/16 connected
172.17.0.150  Gi1/0/17 connected
172.17.0.150  Gi1/0/18 connected
172.17.0.150  Gi1/0/26 connected
172.17.0.150  Gi1/0/28 connected
172.17.0.150  Gi1/0/32 connected
172.17.0.150  Gi1/0/33 connected

论坛徽章:
1
巨蟹座
日期:2014-11-03 17:19:43
8 [报告]
发表于 2014-11-03 13:37 |只看该作者
回复
[root@user]# yum  list | grep awk
gawk.x86_64                             3.1.7-9.el6                      @anaconda-CentOS-201207061011.x86_64/6.3
gawk.x86_64                             3.1.7-10.el6                     base   
[root@user]#  uname -r           
2.6.32-279.el6.x86_64
6# jason680



   

论坛徽章:
1
巨蟹座
日期:2014-11-03 17:19:43
9 [报告]
发表于 2014-11-03 13:41 |只看该作者
可以了,谢谢了。回复 5# zxy877298415


   

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
10 [报告]
发表于 2014-11-03 13:49 |只看该作者
回复 8# knightgreener

$ grep . 172.*
172.17.0.150.inter.status:Gi1/0/2 connected
172.17.0.150.inter.status:Gi1/0/3 connected
172.17.0.150.inter.status:Gi1/0/5 connected
172.17.0.150.mac.add:40f2.e9cc.364a Gi1/0/3
172.17.0.150.mac.add:e839.35b2.9618 Gi1/0/2
172.17.0.1.inter.status:Gi1/0/11 connected
172.17.0.1.inter.status:Gi1/0/13 connected
172.17.0.1.inter.status:Gi1/0/15 connected
172.17.0.1.mac.add:e839.35b3.f5b8 Gi1/0/13

$ awk -vm="mac.add" 'FNR==1{t=$0;F=FILENAME;sub(".inter.status","",F);delete a;cmd="cat "F"."m;while(cmd | getline)a[$2]=$1;$0=t}{print F,$0,a[$1]}' *.inter.status
172.17.0.150 Gi1/0/2 connected e839.35b2.9618
172.17.0.150 Gi1/0/3 connected 40f2.e9cc.364a
172.17.0.150 Gi1/0/5 connected
172.17.0.1 Gi1/0/11 connected
172.17.0.1 Gi1/0/13 connected e839.35b3.f5b8
172.17.0.1 Gi1/0/15 connected

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP