2014-10-04 93 views
0

这里有什么毛病?这里有什么毛病 - 不打印正确的记录

基于这个例子;

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

max打印最大文件的大小,但rec不打印相应的记录,但只是最后一个通过。 我预计rec会包含最大文件的完整记录。

+0

[不解析ls'的'输出(HTTP:// mywiki .wooledge.org/ParsingLs) – 2014-10-04 14:55:12

+0

@Avinash Raj;非常感谢 – 2014-10-04 15:45:12

+0

不知道为什么它是题外话。但它对我来说非常有用。 – 2014-10-05 07:27:22

回答

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

等同于:

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

这台rec无条件。

您需要:

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

接受这一个作为答案,因为额外的解释。 – 2014-10-04 15:46:19

2

变化:

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

到:

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

非常感谢! – 2014-10-04 15:46:41