首页 > 其他分享 >NR和FNR的区别

NR和FNR的区别

时间:2023-04-13 12:13:20浏览次数:32  
标签:文件 zoer 读取 区别 awk NR FNR

awk可以使用自身变量NR和FNR来处理多个文件。
NR:表示awk开始执行程序后所读取的数据行数。
FNR:awk当前读取的记录数,其变量值小于等于NR(比如当读取第二个文件时,FNR是从0开始重新计数,而NR不会)。
NR==FNR:用于在读取两个或两个以上的文件时,判断是不是在读取第一个文件。
awk处理多个文件的基本语法是:
awk -F分隔符 'BEGIN { 初始化 } { 循环执行部分 } END { 结束处理 }' file_list1 file_list2
其中BEGIN和END可以省略,-F也可以使用默认,循环执行部分,是按行对文件进行处理的。

先看一下NR和FNR的使用例子。

root@ubuntu:/home/zoer# cat a
a aaaaa
b bbbbb
c ccccc
d ddddd
root@ubuntu:/home/zoer# cat b
e eeeee
f fffff
g ggggg

root@ubuntu:/home/zoer# awk '{print NR,$0}' a b
1 a aaaaa
2 b bbbbb
3 c ccccc
4 d ddddd
5 e eeeee
6 f fffff
7 g ggggg

对于NR,读取不同文件,NR是一直++的。

-------------------------------------------------

root@ubuntu:/home/zoer# awk '{print FNR,$0}' a b
1 a aaaaa
2 b bbbbb
3 c ccccc
4 d ddddd
1 e eeeee
2 f fffff
3 g ggggg

但是对于FNR,读取不同文件,开始下一个文件的时候FNR又从1开始了。

标签:文件,zoer,读取,区别,awk,NR,FNR
From: https://www.cnblogs.com/0820LL/p/17314196.html

相关文章

  • servlet容器,web容器,spring容器,springmvc容器的区别(转载)
     这个理解我可以通过一个http的页面请求来说明。说明 Tomcat&Jetty在启动时给每个Web应用创建一个全局的上下文环境,这个上下文就是ServletContext,其为后面的Spring容器提供宿主环境。Tomcat&Jetty在启动过程中触发容器初始化事件,Spring的ContextLoaderListener会监听到......
  • dfn序,dfs序与欧拉序的区别
    dfn序,dfs序与欧拉序的区别dfs序是dfs过程中对于某节点进入这个节点的子树和离开子树的顺序满足每个节点都会在dfs序上出现恰好两次任意子树的dfs序都是连续的欧拉序是dfs过程中经过节点的顺序每个节点至少出现一次(事实上出现这个节点的度次,根节点额外一次)有时候用来配合稀疏......
  • map和applymap及apply的区别
    map和applymap及apply的区别1.数据importpandasaspdimportnumpyasnpframe=pd.DataFrame(np.random.rand(4,3),columns=list('abc'),index=['Utah','Ohio','Texas','Oregon'])print(frame)#输出如下:#......
  • c++指针参数传递和引用参数传递的区别
    1) 指针参数传递本质上是值传递,它所传递的是一个地址值。值传递过程中,被调函数的形式参数作为被调函数的局部变量处理,会在栈中开辟内存空间以存放由主调函数传递进来的实参值,从而形成了实参的一个副本(替身)。值传递的特点是,被调函数对形式参数的任何操作都是作为局部变量进行的,......
  • where 和 having 的用法区别
    where:用于过滤数据行;数据分组前进行过滤where中不能使用聚合函数;where是在结果返回之前起作用的;having:用于过滤分组;数据分组后进行过滤在having中可以使用聚合函数;where和having的执行顺序:where早于groupby早于having。having和groupby搭配使用,having后跟......
  • Mybatis中 ${} 和 #{} 的用法与区别
    #{}:将传入的数据都当成一个字符串,会对传入的变量自动加一个单引号。如:user_id=#{userId},如果传入的值是111,那么解析成sql时的值为user_id='111',如果传入的值是id,则解析成的sql为user_id='id'。${}:将传入的参数直接显示生成在sql中,且不加任何引号。如:user_id=${userId},如......
  • 浅谈IAAS PAAS SAAS FAAS的区别
    目录一、IAAS二、PAAS三、SAAS四、FAAS一、IAASinfrastructure-as-a-service基础设施即服务公司会提供场外服务器,存储和网络硬件,你可以租用。节省了维护成本和办公场地,公司可以在任何时候利用这些硬件来运行其应用二、PAASplatform-as-a-service平台即服务公司在网上提供......
  • NRF24L01 自学笔记
    版权声明:本文为CSDN博主「椿湫致简」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/zyc18700766982/article/details/126899279①、引脚说明   VCC、GNDCE:模式控制线。在CSN为低的情况下,CE协同CONFIG寄存器共同......
  • #include ""和#include <>的区别
    现study目录有三个目录:src、include、objsrc目录下有main.c、func1.cinclude目录下有func1.h//main.c#include"func1.h"#include<stdio.h>intmain(){func1();printf("thisismain\n");return0;}//func1.cvoidfunc1(){printf(......
  • R语言:关于NA, <NA> , NaN的区别
    NA表示缺失项是数值型;表示缺失项是因子型;NaN表示缺失项为非数值型;来源:https://statisticsglobe.com/r-na/......