Dificuldade em entender a sintaxe AWK
Oct 20 2020
Portanto, devo admitir que sou completamente novo no AWK e não tenho ideia de como usá-lo, no entanto, estou tentando trabalhar a partir de um exemplo de código do guia do usuário do GNU awk.
{
for (i = 1; i <= NF; i++)
freq[$i]++
}
END {
for (word in freq)
printf "%s\t%d\n", word, freq[word]
}
Este trecho de código simplesmente imprime a contagem de cada palavra presente no in freq
{
data[++data_index] = $0
}
END {
produce_numbers(data)
for(i in freq)
printf("%s\t%d", i, freq[i])
}
function produce_numbers(sortedarray)
{
n = asort(sortedarray)
sum = 0
for(i = 1; i <= n; i++)
{
freq[$i]++
}
return
}
Este é um que estou tentando usar. Tenho certeza de que há vários erros (obviamente porque qualquer saída que tenho é errada ou inexistente), mas não tenho experiência o suficiente para saber a sintaxe. Além disso, o arquivo que estou tentando passar é algo assim
A
B
A
C
B
A
C
D
Respostas
JamesBrown Oct 21 2020 at 03:57
Eu reorganizei e consertei isso:
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
}
Resultado:
A 3
B 2
C 2
D 1
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino