当前位置 博文首页 > awk中NR和FNR的区别小结和实例演示

    awk中NR和FNR的区别小结和实例演示

    作者:admin 时间:2021-04-28 11:59

    一,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开始

    js