2014-10-04 2 views
0

무엇이 잘못 되었나요?무엇이 잘못 되었습니까? 올바른 레코드를 인쇄하지 않습니다.

이 예제에 따르면,

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

최대는 가장 큰 파일의 크기를 인쇄하지만 녹화는 해당 기록을 인쇄하지 않고, 단지 마지막 하나를 통과했다. rec에는 가장 큰 파일의 전체 레코드가 포함될 것으로 예상됩니다. 무조건 rec을 설정하는

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

:

+0

[. ls''의 출력을 구문 분석하지 마십시오] (HTTP : //이 mywiki .wooledge.org/ParsingLs) –

+0

@Avinash Raj; 고마워요. 매우 흥미 롭습니다. –

+0

왜 주제가 떨어져 있는지 모릅니다. 그러나 그것은 나를 위해 매우 유용했습니다. –

답변

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

은 동일합니다.

당신이 필요합니다

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

추가 설명 때문에 대답 하나를 수락했습니다. –

2

변경 :

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

에 :

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

대단히 감사합니다! –

관련 문제