这里有什么问题 - 没有打印正确的记录

时间:2014-10-04 14:53:37

标签: awk

这里有什么问题?

基于这个例子;

ls -l | awk 'BEGIN {max = 0; rec=""} {if ($5>max) max=$5; rec=$0} END {print max "\n" rec}'

max打印最大文件的大小,但rec不打印相应的记录,但只记录最后一个记录。 我希望rec包含最大文件的完整记录。

2 个答案:

答案 0 :(得分:3)

if ($5>max) max=$5; rec=$0

相当于:

if ($5>max) {
  max=$5;
}
rec=$0

无条件地设置rec

你需要:

if ($5>max) { max=$5; rec=$0 }

答案 1 :(得分:2)

变化:

if ($5>max) max=$5; rec=$0

为:

if ($5>max) { max=$5; rec=$0 }