Как создать список частот каждого слова в файле?
У меня есть такой файл:
<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" после каждого слова.
Как я могу сгенерировать список каждого слова, которое появляется в файле, вместе с информацией о частоте?