通过gz文件中具有重复项的多个列数据来计算唯一性

时间:2019-01-17 03:29:33

标签: shell awk command-line grep

我正在处理相当大的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 :(得分:0)

使用cut仅获得column1和column3,使用sort -u除去重复项,然后使用wc -l获得计数:

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