Только с awk
:
awk -v RS='( |\\.|\n)' '{s[$0]++}
END{for (x in s) {printf "%s%s", SEP,x"@"s[x]; SEP=" "}; print ""}' infile
Определяет R запись S разделитель либо пробел , точку или\n
ewline , затем сохраните полей в массив с именем s
с ключом в виде целых полей/слов и для каждого видимого слова увеличивайте количество вхождений в массиве, которое представляет значение ключей в массиве.
В цикле END
перебираем элементы массива и сначала печатаем ключи (, поля/слова )x
, @
и их значения в виде вхождений s[x]
.
SEP как переменная, используемая для добавления пробелов между каждым словом при печати и через секунду к следующим словам.
Мой текущий ответ — остановить службу nscd. Кажется, много команд (, например. curl )сначала проверяет там, но есть обходные пути. Пинг завершится ошибкой, так как проверяется только с помощью nscd. Пока все работает.