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