AWK
外观
AWK 是一种为文本处理而设计的小型编程语言。其名称来源于其作者的姓氏:Alfred Aho、Peter Weinberger 和 Brian Kernighan。该语言是 标准化的,并且在类 Unix 系统上广泛可用。
安装
在 Arch Linux 上,awk(1p) 命令由 gawk 提供,该命令 默认安装,支持原生 Unicode 和大量 额外功能。
替代实现
- BusyBox — BusyBox 的实现性能不是很好,但占用的空间较小,适合内存受限的环境。
- GoAWK — 用 Go 语言实现的 AWK。
- nawk — 《AWK 编程语言》中描述的“新”AWK,又名 BWK AWK 或 One-True-AWK,现在由 Arnold Robbins 和 B. W. Kernighan 共同维护,支持 UTF-8 和 CSV。
- mawk — 一个性能相当不错的 AWK 实现。
故障排除
通过 -v 选项对 ARGC 变量的赋值在运行时不保留
虽然未公开记录,但似乎许多实现会在处理命令行上指定的 -v 选项的变量赋值后,在内部重置 ARGC 变量。因此,要在运行时获取 ARGC 变量的所需值(例如,在 BEGIN 代码块中),需要直接在代码块中设置该变量。
BEGIN {
ARGC=1;
...
}
注意 POSIX 的一次即将更新专门记录了此问题。
参见
- nawk(1):nawk 的参考卡风格 man 页
- GNU AWK 手册:关于 gawk(1) 的综合教程和规范参考文本。
- Alpine Linux 的 AWK 社区维基文章:包含一些关于 BusyBox 和其他 AWK 实现差异的说明。
- AWK 技术笔记:语言陷阱和与其他现代编程语言相比的设计差异。
- 惯用 AWK:AWK 程序可以多么简洁。