擅长:python、mysql、java
<p>下面是一个纯AWK解决方案:</p>
<pre><code><test.in awk '{a[$0]++} END {for (i in a) {print i, "\t", a[i]/NR}}'
</code></pre>
<p>它使用AWK的数组和特殊变量<code>NR</code>,它跟踪行数。在</p>
<p>让我们仔细分析一下代码。第一个街区</p>
^{pr2}$
<p>对输入中的每一行执行一次<em>。这里<code>$0</code>表示每一行,它被用作数组<code>a</code>上的索引,因此,<em>只计算每行</em>的出现次数。在</p>
<p>第二个街区</p>
<pre><code>END {for (i in a) {print i, "\t", a[i]/NR}}
</code></pre>
<p>在输入的末尾执行。此时,<code>a</code>包含输入中每一行的出现次数,并按行本身进行索引:因此,通过循环它,我们可以打印一个行和相关出现的表(我们除以行的总数,<code>NR</code>)。在</p>