2016-01-08 48 views
0

awk功能看起來像這樣的文件名fun.awk使用awk自定義函數從文件打印最小整數?

{ 
print small() 
} 
function small() 

{ 
a[NR]=$0 

smal=0 

for(i=1;i<=3;i++) 
{ 
if(a[i]<a[i+1]) 

smal=a[i] 

else 

smal=a[i+1] 

} 
return smal 
} 

awk.write內容:

1 
23 
32 

awk命令是:

awk -f fun.awk awk.write 

它讓我沒有結果?爲什麼?

+1

請你能添加一些縮進。使這更容易閱讀? –

回答

2

我認爲你正在做這個錯誤的方式。在awk中,一種方法可能是:

NR == 1 { 
    small = $0 
} 
$0 < small { 
    small = $0 
} 
END { 
    print small 
} 

它只是簡單地設置small至今每行,我們看到的最小整數,並在最後打印它。 (注意:您需要啓動第一線初始化small

更簡單的方法可能只是對行作爲數字與sort排序,選擇第一個