DataMash удаляет столбец

#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