Рейтинг:6

Как я могу подсчитать каждый тип символов (и суммировать их) в текстовом файле?

флаг gs

Мне просто интересно, может ли кто-нибудь сказать мне, как подсчитать количество вхождений каждого отдельного символа в текстовом файле, а также общее количество всех вхождений всего, сложенного вместе в конце.

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

waltinator avatar
флаг it
Или вы хотите "42 а, 33 б, 27 в,..."? Вероятно, это просто в `perl`.
Рейтинг:7
флаг jp

Общий счет с Туалет

Ты можешь использовать Туалет для подсчета строк, слов, символов, байтов ... но не перечислять количество для каждого отдельного символа. Видеть мужчина туалет.

Подсчитать количество каждого отдельного символа

Если вы хотите указать номер для каждого отдельного символа, вы можете

  • начните с печати каждого символа в отдельной строке с помощью grep
  • затем отсортируйте их с помощью Сортировать
  • затем используйте уникальный вывести число каждого вида

Примеры

Примеры предполагают, что у вас также есть ссылка на файл словаря (список слов) по адресу /usr/доля/дикт/слова

$ wc --lines --words --chars --bytes /usr/share/dict/words
102305 102305 971304 971578 /usr/share/dict/words

Байтов больше, чем символов, поскольку некоторые символы состоят из более чем одного байта (например, последние символы [умлаут] в списке ниже).

  $ < /usr/share/dict/words grep -o '.' |сортировать |uniq -c
  29105 '
  65630 а
   1438 А
     12 лет
      6 гр.
  14654 б
   1481 Б
  31144 с
   1636 г.
      5 §
  28422 д
    844 Д
  90579 е
    653 в.д.
    148 л
     29 è
      6 ê
  10380 ф
    538 Ф
  22501 г
    852 г
  19325 ч
    919 ч
  68343 я
    361 я
      2 Ã
   1482 дж
    560 Дж
   8188 тыс.
    680 К
  41512 л
    942 л
  21488 м
   1768 М
  58328 сущ.
    587 с.ш.
      8 ±
  50187 о
    409 О
     10 м³
      2 ô
  21691 р
   1049 П
   1492 кв.
     72 В
  58312 р
    782 Р
  92909 с
   1656 с.
  53309 т
    908 т
  26773 ты
    140 ед.
      3 г»
   7870 В
   7281 Вт
    352 В
    533 Вт
   2139 х
     44 х
  12896 г.
    154 г
     14 ¼
   3266 г
    161 З
      3 ¥
      2 Ã 
      7 ä
     17 ¶
phuclv avatar
флаг sd
вам не нужно перенаправление для работы с grep, потому что он может напрямую читать файл. На самом деле, указав файл, можно выполнить множество оптимизаций, которые невозможно выполнить с потоком.
Рейтинг:5
флаг cn

Существует очень простой способ подсчета каждого символа в текстовом файле.Я использовал ваш собственный вопрос в виде текстового файла (с именем countc) и протестировал этот код:

грэп '.' -o countc | awk '{a[$1]++} END {для (i in a) напечатать i,a[i]}'

и вот что вы получаете:

' 1
ч 9
ты 6
 46
v 1
я 7
Дж 2
ж 5
к 1
х 1
л 10
у 4
м 3
№ 16
14
. 2
о 19
р 1
с 12
я 2
д 9
р 14
е 28
ф 8
с 8
г 5
т 21

массивы awk очень полезны для таких операций.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.