【发布时间】:2012-11-02 14:32:48
【问题描述】:
我正在使用 Aho、Kernighan 的书“AWK 编程语言”。 在第 20 页,他们提供了一个在我的系统上无法运行的程序。
emp.data 是
Beth 4.00 0
Dan 3.75 0
Kathy 4.00 10
Mark 5.00 20
Mary 5.50 22
Susie 4.25 18
他们给出的程序是
awk '{ printf("%6.2f %s\n" , $2*$3, $0) }' emp.data | sort
他们给出的输出是
但我的输出是
0.00 Beth 4.00 0
0.00 Dan 3.75 0
100.00 Mark 5.00 20
121.00 Mary 5.50 22
40.00 Kathy 4.00 10
76.50 Susie 4.25 18
那么发生了什么?
【问题讨论】:
-
把那本书扔掉,因为它很旧而且不是很好。 Get Effective Awk Programming, 第三版 由 Arnold Robbins 代替。例如,他们上面的 printf 语法是错误的。话虽如此,如果这是它产生的输出,那么您的“awk”版本就有很大问题。 awk --version 告诉你什么?如果您的 awk 没有损坏,那么您必须在输入文件中隐藏控制字符。
-
这本书是一颗宝石,请坚持下去:)
标签: awk