Awk编程:NR与FNR变量、ARGC与ARGV的使用及数组操作
1. 改变NR和FNR变量
在awk中,每次读取一条记录时, NR 和 FNR 变量会递增,而不是被设置为已读取记录的绝对数量。这意味着程序可以改变这些变量,并且它们的新值会在每条记录读取时继续递增。
例如:
$ echo '1
> 2
> 3
> 4' | awk 'NR == 2 { NR = 17 }
> { print NR }'
输出结果为:
1
17
18
19
在 FNR 被添加到awk语言之前,许多awk程序利用这一特性,通过在 FILENAME 改变时将 NR 重置为零来跟踪文件中的记录数量。
2. 使用ARGC和ARGV
ARGC 和 ARGV 是awk中的内置变量,用于传递命令行参数的信息。以下是一个示例程序,展示了 ARGC 和 ARGV 中包含的信息:
$ awk 'BEGIN {
> for (i = 0; i < ARGC; i++)
> print ARGV
超级会员免费看
订阅专栏 解锁全文
2

被折叠的 条评论
为什么被折叠?



