Как создать список частот каждого слова в файле?

У меня есть такой файл:

<code>This is a file with many words.
Some of the words appear more than once.
Some of the words only appear one time.
</code>

Я хотел бы создать список из двух столбцов. Первый столбец показывает, какие слова появляются, второй столбец показывает, как часто они появляются, например:

<code>this@1
is@1
a@1
file@1
with@1
many@1
words3
some@2
of@2
the@2
only@1
appear@2
more@1
than@1
one@1
once@1
time@1 
</code>
Чтобы упростить эту работу, перед обработкой списка я уберу все знаки пунктуации и заменю весь текст строчными буквами. Если нет простого решения,words а такжеword может считаться двумя отдельными словами.

Так далеко, у меня есть это:

<code>sed -i "s/ /\n/g" ./file1.txt # put all words on a new line
while read line
do
     count="$(grep -c $line file1.txt)"
     echo $line"@"$count >> file2.txt # add word and frequency to file
done < ./file1.txt
sort -u -d # remove duplicate lines
</code>

По какой-то причине это показывает только "0" после каждого слова.

Как я могу сгенерировать список каждого слова, которое появляется в файле, вместе с информацией о частоте?

Ответы на вопрос(10)

Ваш ответ на вопрос