awk中的NR和FNR的区别

204 阅读3分钟
一,NR和FNR的不同
NR:表示当前记录数
FNR:也表示当前记录数,但是FNR的作用域只在一个文件内.如果重新打开文件,FNR会从1开始.

二,实例说明
1,测试文件aaa,cccc

[backcolor=rgb(27, 36, 38) !important][size=1em]
[size=1em]?

[color=rgb(185, 189, 182) !important][size=1em]1

[color=rgb(185, 189, 182) !important][size=1em]2

[color=rgb(185, 189, 182) !important][size=1em]3

[color=rgb(185, 189, 182) !important][size=1em]4

[color=rgb(185, 189, 182) !important][size=1em]5

[color=rgb(185, 189, 182) !important][size=1em]6

[color=rgb(185, 189, 182) !important][size=1em]7

[color=rgb(185, 189, 182) !important][size=1em]8

[color=rgb(185, 189, 182) !important][size=1em]9

[size=1em][color=rgb(185, 189, 182) !important][size=1em][root@Blackghost test2]# cat aaa //测试文件aaa
[color=rgb(185, 189, 182) !important][size=1em]1111:23434:zhang
[color=rgb(185, 189, 182) !important][size=1em]hoadsf:asdf:ccc
[color=rgb(185, 189, 182) !important][size=1em][root@Blackghost test2]# cat ccc //测试文件ccc
[color=rgb(185, 189, 182) !important][size=1em]1111:23434:zhang
[color=rgb(185, 189, 182) !important][size=1em]hoadsf:asdf:ccc
[color=rgb(185, 189, 182) !important][size=1em]tank:zhang:x20342
[color=rgb(185, 189, 182) !important][size=1em]ying:zhasdf:72342
[color=rgb(185, 189, 182) !important][size=1em]hosa:asdfa:2345sdf




2,一个文件中NR,FNR

[backcolor=rgb(27, 36, 38) !important][size=1em]
[size=1em]?

[color=rgb(185, 189, 182) !important][size=1em]1

[color=rgb(185, 189, 182) !important][size=1em]2

[color=rgb(185, 189, 182) !important][size=1em]3

[color=rgb(185, 189, 182) !important][size=1em]4

[color=rgb(185, 189, 182) !important][size=1em]5

[color=rgb(185, 189, 182) !important][size=1em]6

[color=rgb(185, 189, 182) !important][size=1em]7

[size=1em][color=rgb(185, 189, 182) !important][size=1em][root@Blackghost test2]# awk '{print NR;print FNR;print $0;}' aaa
[color=rgb(185, 189, 182) !important][size=1em]1 //NR
[color=rgb(185, 189, 182) !important][size=1em]1 //FNR
[color=rgb(185, 189, 182) !important][size=1em]1111:23434:zhang
[color=rgb(185, 189, 182) !important][size=1em]2
[color=rgb(185, 189, 182) !important][size=1em]2
[color=rgb(185, 189, 182) !important][size=1em]hoadsf:asdf:ccc




上例中,我们可以看出NR和FNR是一样的
3,多个文件中NR,FNR


[backcolor=rgb(27, 36, 38) !important][size=1em]
[size=1em]?

[color=rgb(185, 189, 182) !important][size=1em]1

[color=rgb(185, 189, 182) !important][size=1em]2

[color=rgb(185, 189, 182) !important][size=1em]3

[color=rgb(185, 189, 182) !important][size=1em]4

[color=rgb(185, 189, 182) !important][size=1em]5

[color=rgb(185, 189, 182) !important][size=1em]6

[color=rgb(185, 189, 182) !important][size=1em]7

[color=rgb(185, 189, 182) !important][size=1em]8

[color=rgb(185, 189, 182) !important][size=1em]9

[color=rgb(185, 189, 182) !important][size=1em]10

[color=rgb(185, 189, 182) !important][size=1em]11

[color=rgb(185, 189, 182) !important][size=1em]12

[color=rgb(185, 189, 182) !important][size=1em]13

[color=rgb(185, 189, 182) !important][size=1em]14

[color=rgb(185, 189, 182) !important][size=1em]15

[color=rgb(185, 189, 182) !important][size=1em]16

[color=rgb(185, 189, 182) !important][size=1em]17

[color=rgb(185, 189, 182) !important][size=1em]18

[color=rgb(185, 189, 182) !important][size=1em]19

[color=rgb(185, 189, 182) !important][size=1em]20

[color=rgb(185, 189, 182) !important][size=1em]21

[color=rgb(185, 189, 182) !important][size=1em]22

[size=1em][color=rgb(185, 189, 182) !important][size=1em][root@Blackghost test2]# awk '{print NR;print FNR;print $0;}' aaa ccc
[color=rgb(185, 189, 182) !important][size=1em]1
[color=rgb(185, 189, 182) !important][size=1em]1
[color=rgb(185, 189, 182) !important][size=1em]1111:23434:zhang
[color=rgb(185, 189, 182) !important][size=1em]2 //NR
[color=rgb(185, 189, 182) !important][size=1em]2 //FNR
[color=rgb(185, 189, 182) !important][size=1em]hoadsf:asdf:ccc
[color=rgb(185, 189, 182) !important][size=1em]3 //NR
[color=rgb(185, 189, 182) !important][size=1em]1 //FNR 下面的数据是来自ccc,所以NFR重置为1
[color=rgb(185, 189, 182) !important][size=1em]1111:23434:zhang
[color=rgb(185, 189, 182) !important][size=1em]4
[color=rgb(185, 189, 182) !important][size=1em]2
[color=rgb(185, 189, 182) !important][size=1em]hoadsf:asdf:ccc
[color=rgb(185, 189, 182) !important][size=1em]5
[color=rgb(185, 189, 182) !important][size=1em]3
[color=rgb(185, 189, 182) !important][size=1em]tank:zhang:x20342
[color=rgb(185, 189, 182) !important][size=1em]6
[color=rgb(185, 189, 182) !important][size=1em]4
[color=rgb(185, 189, 182) !important][size=1em]ying:zhasdf:72342
[color=rgb(185, 189, 182) !important][size=1em]7
[color=rgb(185, 189, 182) !important][size=1em]5
[color=rgb(185, 189, 182) !important][size=1em]hosa:asdfa:2345sdf





看到不同了吧,多文件操作时,新打开文件时FNR会重新从1开始