欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

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

程序员文章站 2023-11-18 16:04:52
一,nr和fnr的不同 nr:表示当前记录数 fnr:也表示当前记录数,但是fnr的作用域只在一个文件内.如果重新打开文件,fnr会从1开始. 二,实例说明 1,测...

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