Как построить частотное распределение слов из файлов в терминале.

cat *.c | { printf "se te du\nplot '-' t '' w dots\n"; tr '[[:upper:]]' '[[:lower:]]' | tr -s [[:punct:][:space:]] '\n' | sort | uniq -c | sort -nr | head -n 100 | awk '{print $1}END{print "e"}'; } | gnuplot


Эта команда выполняет следующие действия:

1. С помощью cat объединяет содержимое всех файлов с расширением .c.
2. Передает объединенный текст в следующую команду в виде потока данных.
3. Внутри фигурных скобок выполняет последовательность команд:
printf выводит шаблон строки для gnuplot, настройку отображения графика.
tr переводит все заглавные буквы в строчные и заменяет пунктуацию и пробелы на новую строку.
sort сортирует слова в алфавитном порядке.
uniq -c подсчитывает число повторений каждого слова.
sort -nr сортирует результаты в обратном порядке по частоте.
head -n 100 оставляет только первые 100 строк.
awk выводит только первый столбец (частоту) и слово «e» в конце.
4. Перенаправляет результаты в программу gnuplot для построения графика.

Эта команда полезна для создания частотного распределения слов в текстовых файлах и отображения его в виде графика с помощью gnuplot. Альтернативой может быть использование других инструментов для анализа и визуализации данных, таких как Python с библиотеками Pandas и Matplotlib. Аргументы, передаваемые команде, — это файлы с расширением .c.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *