Bash 难以理解AWK语法

Bash 难以理解AWK语法,bash,csv,awk,Bash,Csv,Awk,因此,我承认我对AWK完全陌生,不知道如何使用它,但我正试图从GNU AWK用户指南中提取一个代码示例 { for (i = 1; i <= NF; i++) freq[$i]++ } END { for (word in freq) printf "%s\t%d\n", word, freq[word] } 我重新组织并修复了: function produce_numbers(sortedarray) {

因此,我承认我对AWK完全陌生,不知道如何使用它,但我正试图从GNU AWK用户指南中提取一个代码示例

{
    for (i = 1; i <= NF; i++)
        freq[$i]++
}

END {
    for (word in freq)
        printf "%s\t%d\n", word, freq[word]
}

我重新组织并修复了:

function produce_numbers(sortedarray)
{
    n = asort(sortedarray)
    # sum = 0                          # not used

    for(i = 1; i <= n; i++)
    {
        freq[sortedarray[i]]++         # $i is unusable at this point
    }
    return
}
{
    data[++data_index] = $0
}
END {
    produce_numbers(data)
    for(i in freq)
        printf("%s\t%d\n", i, freq[i])  # added newline to output
}

我重新组织并修复了:

function produce_numbers(sortedarray)
{
    n = asort(sortedarray)
    # sum = 0                          # not used

    for(i = 1; i <= n; i++)
    {
        freq[sortedarray[i]]++         # $i is unusable at this point
    }
    return
}
{
    data[++data_index] = $0
}
END {
    produce_numbers(data)
    for(i in freq)
        printf("%s\t%d\n", i, freq[i])  # added newline to output
}

那该怎么办,即预期的产量是多少?你可能也想看看这个:它应该做什么,即预期的输出是什么?您可能还想检查一下这个:
function produce_numbers(sortedarray)
{
    n = asort(sortedarray)
    # sum = 0                          # not used

    for(i = 1; i <= n; i++)
    {
        freq[sortedarray[i]]++         # $i is unusable at this point
    }
    return
}
{
    data[++data_index] = $0
}
END {
    produce_numbers(data)
    for(i in freq)
        printf("%s\t%d\n", i, freq[i])  # added newline to output
}
A       3
B       2
C       2
D       1