2014-10-04 34 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