Немного поздно, но для завершения набора, другого подхода python (3), отсортированного результата:
#!/usr/bin/env python3
import sys
chars = open(sys.argv[1]).read().strip().replace("\n", "")
[print(c+" -", chars.count(c)) for c in sorted(set([c for c in chars]))]
A - 1
M - 1
O - 1
T - 1
a - 4
c - 1
k - 1
n - 1
o - 4
s - 2
t - 3
w - 2
y - 1
chars = open(sys.argv[1]).read().strip().replace("\n", "")
Создать (отсортированный) набор uniques: sorted(set([c for c in chars]))
Считать и распечатать запись для каждого из символов: print(c+" -", chars.count(c)) for c in <uniques>
chars = open(sys.argv[1]).read().strip().replace("\n", "")
Прочитайте файл, пропустите пробелы и верните его как «символы»:
/path/to/chars_count.py </path/to/file>
, если скрипт исполняемый файл или: python3 /path/to/chars_count.py </path/to/file>
, если это не