Подсчет уникальностей по нескольким столбцовым данным в gz-файле с дубликатами - PullRequest
0 голосов
/ 17 января 2019

Я работаю с довольно большими tsv zip файлами, в которых каждый файл имеет только 3 столбца. Я хотел бы посчитать количество уникальных вхождений для определенного регулярного выражения (которое содержится в столбце 3) во всех файлах. Как мне убедиться, что счетное число в выходных данных удаляет любые дубликаты на основе значений, содержащихся в столбце 1?

Пробовал оба из них, но не уверен, что они верны:

zgrep -c ",80447," AU_AAID_201812*.tsv.gz | uniq -c
zgrep -c ",80447," AU_AAID_201812*.tsv.gz

Я хочу получить уникальный номер счета, так что если:

  • Столбец 1 / строка 1 = "xyz123" и Столбец 3 / строка 1 = ", 80447"
  • Столбец 1 / Строка 2 = "xyz123" и Столбец 3 / Строка 2 = ", 80447,"

Тогда мой вывод все равно будет "1".

1 Ответ

0 голосов
/ 17 января 2019

Используйте cut, чтобы получить только столбец1 и столбец3, используйте sort -u, чтобы удалить дубликаты, а затем используйте wc -l, чтобы получить счет:

zgrep ',80447,' AU_AAID_201812*.tsv.gz | cut -d, -f1,3 | sort -u | wc -l
...