天天看點

awk的關聯數組版本支援

今天寫一個awk腳本運作時候出現報錯:

<code>awk</code> <code>'BEGIN{</code><code>sum</code> <code>= 0; lintCount=0;arrAll[</code><code>"0"</code><code>]=0;}{</code>

<code>for</code><code>(i=1;i&lt;NF;i++){ </code><code>if</code><code>(match($i,/^uri\[/)&gt;0){ match($i,/\[(.*?)\]/,uri);}};</code><code>if</code><code>(match($i,/^logId\[/)&gt;0){match($i,/\[(.*?)\]/,logId);}</code>

<code>split</code><code>(uri[1],arrURI,</code><code>"?"</code><code>);key=arrURI[0];print arrURI;</code>

<code>}' soundui.log.2017091710</code>

<code>awk</code><code>: cmd. line:4: (FILENAME=soundui.log.2017091810 FNR=94565) fatal: attempt to use array `arrAll' </code><code>in</code> <code>a scalar context</code>

這是想統計uri的個數的,但是說不支援關聯數組。經過檢視:

<code>$ </code><code>awk</code> <code>--version</code>

<code>GNU Awk 3.1.3</code>

<code>Copyright (C) 1989, 1991-2003 Free Software Foundation.</code>

發現是3.1.3,awk需要到4.1以後支援,是以隻能更新了!

本文轉自 夢朝思夕 51CTO部落格,原文連結:http://blog.51cto.com/qiangmzsx/1966849