Как слить два словаря счетчика частоты – unix cmd?

У меня есть два частотных словаря, я пытался объединить их, используя join / sort cmd, но всегда получая неправильный вывод или различную частоту. Я хочу присоединиться к ним вместе, добавив +1, если слово существует, а новое число слов 1

7 umslipped 1 umslippersmouthwashand 3 umslobagas 35 umslopogaas 5 (umslopogaas 15 (umslopogaas) 1 umslower 6 umsmall 2 umsnag 2 um[snaps 13 umsnootchie 2 umsnow 84 umso 14 um-so ## 

Второй словарь

 1 palpating 1 palpated 1 palpate 1 palpably 1 palpable 1 palominos 1 palomino 1 palomar 1 palmyra 1 palmy 1 palmtops 1 palmtop 1 palms 1 palmolive 1 palmists 1 palmistry 1 palmist 

One Solution collect form web for “Как слить два словаря счетчика частоты – unix cmd?”

Вы можете использовать awk чтобы добавить все это.

 awk '{ arr[$2] += $1} END {for (key in arr) {printf "%4s %s\n", arr[key], key}}' file1 file2 

объяснение

  • { arr[$2] += $1} установить индекс массива нашей строки aka $2 to += число $1
  • END Когда мы закончим
  • {for (key in arr) {printf "%4s %s\n", arr[key], key}} Прокрутите все это и распечатайте.

Что я сделал, чтобы проверить это

file1

  7 umslipped 1 umslippersmouthwashand 3 umslobagas 35 umslopogaas 5 (umslopogaas 15 (umslopogaas) 1 umslower 6 umsmall 2 umsnag 2 um[snaps 13 umsnootchie 2 umsnow 84 umso 14 um-so ## 

file2

  14 um-so ## 84 umso 2 umsnow 13 umsnootchie 2 um[snaps 2 umsnag 6 umsmall 1 umslower 15 (umslopogaas) 5 (umslopogaas 35 umslopogaas 3 umslobagas 1 umslippersmouthwashand 7 umslipped 

Вывод

  10 (umslopogaas 12 umsmall 6 umslobagas 28 um-so 2 umslippersmouthwashand 30 (umslopogaas) 70 umslopogaas 26 umsnootchie 4 umsnag 168 umso 4 um[snaps 14 umslipped 4 umsnow 2 umslower 
  • Чтение char-by-char тихо не работает
  • Поддержка сервера терминалов Telnet не работает
  • Как я могу воссоздать среду VT100 и подключить терминал Esprit 250C?
  • Использование меток в терминале / терминаторе для упрощения навигации
  • Изменение настроек аудиосистемы с помощью консоли в OpenSUSE 13.1
  • Мультиплексные TTY-файлы с одним экземпляром экрана
  • можно ли отправить управляющую последовательность в эмулятор терминала с помощью клавиатуры
  • Понимание управляющего терминала
  • Как установить фоновое изображение для urxvt?
  • Использовать другую оболочку по умолчанию в каждом эмуляторе терминала
  • Как программно проверить, поддерживает ли терминал курсив?
  • Идентификатор родителя-сиротца не равен 1, когда родительский процесс выполняется с терминала GNOME
  • Interesting Posts

    Два сетевых адаптера с DHCP, используйте один в качестве резервного

    Проверьте, какие RPM зависят от этого пакета

    Как передать аргументы интерпретатору shebang при выполнении сценария?

    Как этот awk выравнивает интервал?

    Как печатать одинаковые строки несколько раз с переменными, измененными с помощью Sed / Awk / anything?

    Анализ поведения многопоточной программы

    Как мне заставить Knoppix обойти проверку жесткого диска для себя?

    Как загрузить openSUSE 12.1 через `wget -c`?

    Как проверить параметр установлен на bash-скрипт?

    Как преобразовать этот формат временной метки в другой формат в Perl?

    Анализ файлов журналов

    Почему пользователь не может изменять групповое владение собственными файлами?

    Можно ли отключить перечисление пользователей Samba?

    Список недавно измененных файлов указанного пользователя на весь диск?

    Есть ли системный вызов для привязки дескриптора файла непосредственно к другому?

    Linux и Unix - лучшая ОС в мире.