Ошибка сегментации Oracle Java 8 u151

По умолчанию в awk полевой разделитель (FS) представляет собой пробел или вкладку. Поскольку мы хотим подсчитать каждый символ, нам нужно будет переопределить FS ни к чему (FS=""), чтобы разделить каждый символ в отдельной строке и сохранить его в массив, а в конце внутри блока END{..} напечатать их общие вхождения на следующая команда awk:

$ awk '{for (i=1;i<=NF;i++) a[$i]++} END{for (c in a) print c,a[c]}' FS="" file
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

В блоке {for (i=1;i<=NF;i++) a[$i]++} ... FS="" ... мы просто разбиваем символы. И в блоке END{for (c in a) print c,a[c]} мы перебираем массив a и печатаем сохраненный символ в нем print c и его количество вхождений a[c]

0
задан 11 December 2017 в 15:58

0 ответов

Другие вопросы по тегам:

Похожие вопросы: