#bash #script
#удар #скрипт
Вопрос:
Мне нужно вывести три столбца (слово, год, частота), которые описывают слово с наибольшей частотой в год с 1900 года. Я получил год и частоту, но потерял колонку слов. Есть идеи, как его вернуть?
Текущий Код:
zcat ***path to data file*** | awk '$2gt;=1900' | sort -k 2,2n -k1,1 | datamash -g2 max 3
Структура данных:
word TAB year TAB frequency TAB volume_count NEWLINE
Желаемый Результат:
seen_VERB 1925 321826 seen_VERB 1932 273366 seen_VERB 1945 220152 seen_VERB 1964 675214
Текущий Выход:
1925 321826 1932 273366 1945 220152 1964 675214
Комментарии:
1. ` -f, —полная печать всей строки ввода перед результатами операции (по умолчанию: печать только сгруппированных клавиш) `
Ответ №1:
awk сам по себе может выполнять фильтрацию ( $2gt;1900
), но также и работу datamash
:
zcat file | awk '$2gt;1900 amp;amp; $3gt;f[$2] {w[$2]=$1; f[$2]=$3} END {for(y in w) print w[y], y, f[y]}' | sort -k2n