Как посчитать количество уникальных значений поля в текстовом файле с разделителями табуляции?

Но согласно рекуррентному соотношению

T (n) = 2T (n / 2) + O (m * n)

Будет T (n) = 2T ( n / 2) + O (n ^ 2), когда m = n

Тогда результатом будет O (n ^ 2), а не O (n ^ 2logn).

Исправить если я ошибаюсь.

34
задан sfactor 17 August 2010 в 12:48
поделиться

4 ответа

Вы можете использовать команды cut, sort и uniq следующим образом:

cat input_file | cut -f 1 | sort | uniq

получает уникальные значения в поле 1, замена 1 на 2 даст уникальные значения в поле 2.

избегая UUOC :)

cut -f 1 input_file | sort | uniq

EDIT:

Для подсчета количества уникальных случаев можно использовать команду wc в цепочке:

cut -f 1 input_file | sort | uniq | wc -l
74
ответ дан 27 November 2019 в 06:38
поделиться
# COLUMN is integer column number
# INPUT_FILE is input file name

cut -f ${COLUMN} < ${INPUT_FILE} | sort -u | wc -l
2
ответ дан 27 November 2019 в 06:38
поделиться

Предполагая, что файл данных фактически разделен табуляцией, а не выровнен по пробелу:

<test.tsv awk '{print $4}' | sort | uniq

Где $ 4 будет:

  • $ 1 - Красный
  • $ 2 - Шар
  • $ 3 - 1
  • $ 4 - Продано
2
ответ дан 27 November 2019 в 06:38
поделиться

Для этого вы можете использовать awk, sort и uniq, например, чтобы перечислить все уникальные значения в первом столбце

awk < test.txt '{print $1}' | sort | uniq

Как указано в другом месте, если вы хотите подсчитать количество экземпляров чего-то вы можете передать уникальный список в wc -l

8
ответ дан 27 November 2019 в 06:38
поделиться
Другие вопросы по тегам:

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