linux:awk中的NR,FNR


关键词: NR,FNR
FNR表示当前文件的记录数 NR表示到此为止的记录数

对于单个 文件NR 和FNR 的 输出结果一样的 :

# awk '{print NR,$0}' file1
1 a b c d
2 a b d c
3 a c b d
4 a c d b
5 a d c b
6 a d b c
awk '{print FNR,$0}' file1
1 a b c d
2 a b d c
3 a c b d
4 a c d b
5 a d c b
6 a d b c

但是对于多个文件 :

# awk '{print NR,$0}' file1 file2
1 a b c d
2 a b d c
3 a c b d
4 a c d b
5 a d c b
6 a d b c
7 aa bb cc dd
8 aa bb dd cc
9 aa cc bb dd
10 aa cc dd bb
11 aa dd bb cc
12 aa dd cc bb
# awk '{print FNR,$0}' file1 file2
1 a b c d
2 a b d c
3 a c b d
4 a c d b
5 a d c b
6 a d b c
1 aa bb cc dd
2 aa bb dd cc
3 aa cc bb dd
4 aa cc dd bb
5 aa dd bb cc
6 aa dd cc bb