Как найти количество экземпляров каждого текста?

Наслаждайтесьawkрешением:

awk -F, '{ diff=$2-$3; if(a[$1]>diff || !a[$1]) { a[$1]=diff; b[$1]=$2 FS $3 } }
         END{ for(i in a) print i,b[i] }' OFS=',' yourfile

Выход:

c1,5,3
c2,8,4
0
06.08.2019, 17:47
2 ответа

Сделайте это с помощьюdatamash:

datamash -g1 -s -H count 1 < infile

Выход:

GroupBy(City)   count(City)
Chennai 2
Cork    1
Manhattan   2
1
28.01.2020, 02:39

Использовать встроенный Linux -в командах sortиuniq:

cat DATAFILE | sort | uniq --count

Это даст вам что-то вроде:

  2 Chennai
  1 City           
  1 Cork       
  2 Manhattan

Пояснение:Здесь используется команда uniq, которая обычно удаляет повторяющиеся строки, оставляя только один экземпляр. С опцией «--count» выдает дополнительный подсчет количества повторений. Для того, чтобы uniqработало, строки должны быть отсортированы -, иначе дубликатов не будет в последовательных строках, как это необходимо. sortделает именно это, сортирует строки по алфавиту.

Вам нужно расположить их в другом порядке столбцов? Нужно ли игнорировать первую строку? Если да, пожалуйста, сообщите нам, могут ли названия городов содержать более одного слова.

0
28.01.2020, 02:39

Теги

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