本文主要是介绍awk里的NR和FNR的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
对于单个 文件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 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
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
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
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
看书上说的是 :FNR表示当前文件的记录数 NR表示到此为止的记录数
q:一批文件要每个文件取前10行,合并成一个文件,如何做?
a:
# head -q file1 file2 ... filen > newfile
# awk 'FNR<=10' file1 file2 ... filen >newfile
# awk 'FNR<=10' file1 file2 ... filen >newfile
这篇关于awk里的NR和FNR的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!