一,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//测试文...
解释:NR表示读取的行数,FNR表示读取的当前行数。NR=FNR表示读的是第一个文件,比如读到第一行NR=1,FNR也=1,也就是说在第一个文件的时候NR始终是等于FNR的,直到读第二个文件的第一行的时候NR是等于5的,而此时NFR=1,所以NR>NFR就表示在读第二个文件。{a[1]=1]=2}这个就表示在读一个文件的时候每读...
[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:zh...
省略action,则默认执行 print $0 的操作。 变量FS:输入字段分隔符;OFS:输出字段分隔符;RS:输入记录分隔符;ORS:输出记录分隔符;NF:字段数量;NR:记录号;NFR:各文件分别计数,记录号。FILENAME:当前文件名;ARGC:命令行的参数;ARGV:数组,保存的是命令行所给定的各参数。 注意:以上都是内置变量,在引用时不需要前面...
因为在第一个文件区域时,NR和NFR是相等的所以把第一个文件整个字段缓存到a数组中去 awk中的循环: break 跳出本层循环,continue结束本次循环; exit在某条件时退出,但是仍执行END操作。 next在某条件时跳过该行,对下一行执行操作 while (condition){
上例中,我们可以看出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 ...
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开始...
NR:awk命令处理的总行数 NF:当前处理行分割后的字段总数 FNR:awk命令处理的当前文件的行数 # NR可以输出awk需要处理的总行数[root@acer ~]# awk -F, '{print NR}' person.txt12345# NF可以输出当前处理行分割后的字段总数,可以与$连用,表示输出最后一个字段[root@acer ~]# awk -F, '{print NF}' per...
上例中,我们可以看出NR和FNR是一样的 3,多个文件中NR,FNR 代码如下: [root@Blackghost test2]# awk '{print NR;print FNR;print $0;}' aaa ccc1 11111:23434:zhang2 //NR 2 //FNRhoadsf:asdf:ccc3 //NR 1 //FNR 下面的数据是来自ccc,所以NFR重置为11111:23434:zhang4 ...
FS:输入字段分隔符;OFS:输出字段分隔符;RS:输入记录分隔符;ORS:输出记录分隔符;NF:字段数量;NR:记录号;NFR:各文件分别计数,记录号。FILENAME:当前文件名;ARGC:命令行的参数;ARGV:数组,保存的是命令行所给定的各参数 printf命令 printf “FORMAT” , item1, item2, ...不会自动换行,FORMAT中需要分别为后面每...