设为首页收藏本站
查看: 75|回复: 0

[PHP] awk中的NR和FNR的区别

[复制链接]

论坛元老

Rank: 6Rank: 6

积分
34274
主题
17031
UID
1347
M币
67
贡献
17176

  • 发表于 2013-9-25 11:55:00 | 显示全部楼层 |阅读模式
    一,NR和FNR的不同
      NR:表示当前记录数
      FNR:也表示当前记录数,但是FNR的作用域只在一个文件内.如果重新打开文件,FNR会从1开始.
      

      二,实例说明
      1,测试文件aaa,cccc
       
    [root@Blackghost test2]# cat aaa    //测试文件aaa 1111:23434:zhang hoadsf:asdf:ccc [root@Blackghost test2]# cat ccc    //测试文件ccc 1111:23434:zhang hoadsf:asdf:ccc tank:zhang:x20342 ying:zhasdf:72342 hosa:asdfa:2345sdf   
      2,一个文件中NR,FNR
       
    [root@Blackghost test2]# awk '{print NR;print FNR;print $0;}' aaa 1     //NR 1     //FNR 1111:23434:zhang 2 2 hoadsf:asdf:ccc   
      上例中,我们可以看出NR和FNR是一样的
      3,多个文件中NR,FNR
       
       
    [root@Blackghost test2]# awk '{print NR;print FNR;print $0;}' aaa ccc 1 1 1111:23434:zhang 2      //NR 2      //FNR hoadsf:asdf:ccc 3      //NR 1      //FNR  下面的数据是来自ccc,所以NFR重置为1 1111:23434:zhang 4 2 hoadsf:asdf:ccc 5 3 tank:zhang:x20342 6 4 ying:zhasdf:72342 7 5 hosa:asdfa:2345sdf   
       
      看到不同了吧,多文件操作时,新打开文件时FNR会重新从1开始
    回复

    使用道具 举报

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

    本版积分规则

    在我站开通SVIP可同时获得17个站点VIP资源 立即登录 立即注册
    快速回复 返回顶部 返回列表