gpt4 book ai didi

awk - 什么是 NR 和 FNR, "NR==FNR"意味着什么?

转载 作者:IT老高 更新时间:2023-10-28 12:34:31 24 4
gpt4 key购买 nike

我正在学习使用 awk 进行文件比较。

我找到了如下语法,

awk 'NR==FNR{a[$1];next}$1 in a{print $1}' file1 file2

我不明白NR==FNR在这里面有什么意义?如果我尝试使用 FNR==NR 那么我也会得到相同的输出吗?

它到底是做什么的?

最佳答案

在awk中,

FNR指的是当前文件中的记录号(一般是行号),
NR 指总记录数。
运算符 == 是比较运算符,当两个周围的操作数相等时返回 true。

这意味着条件 NR==FNR 仅对第一个文件为真,因为 FNR 在每个文件的第一行重置回 1 但 NR不断增加。
此模式通常用于仅对第一个文件执行操作。

block 内的 next 表示跳过任何其他命令,因此它们仅在第一个以外的文件上运行。

条件 FNR==NR 比较与 NR==FNR 相同的两个操作数,因此其行为方式相同。

关于awk - 什么是 NR 和 FNR, "NR==FNR"意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32481877/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com