我有以下输入文本文件:

CD196_RS15035       normal alleles
CD196_RS15035       normal alleles
CD196_RS15035       truncation in the allele
CD196_RS15035       truncation in the allele
CD196_RS15035       no stop for allele
CD196_RS15035       no stop for allele
CD196_RS16835       normal alleles
CD196_RS16835       truncation in the allele
CD196_RS16835       no stop for allele
CD196_RS16835       no stop for allele

我想计算一下每个字符串在对应于第一列的第二列中出现的次数.

我希望输出文本文件如下所示:

CD196_RS15035  normal alleles  2    truncation in the allele   2    no stop for allele  2
 
CD196_RS16835  normal alleles  1    truncation in the allele   1    no stop for allele  2

任何提示都会有帮助.谢谢.

推荐答案

awk‘S多维数组:

awk -F'[ ]{2,}'
  '{ a[$1][$2]+=1 }
   END{ 
       for (i in a) { 
           printf("%s ", i);
           for (j in a[i]) printf("%s %d ", j, a[i][j]); 
           print "";  
       }
   }'
  test.txt

CD196_RS15035 normal alleles 2 no stop for allele 2 truncation in the allele 2 
CD196_RS16835 normal alleles 1 no stop for allele 2 truncation in the allele 1 

Linux相关问答推荐

如何注释掉SLURM中的延迟调度命令?

如何限制SLURM中并行执行的程序数量

仅使用Find搜索32字符长的目录

Azure Linux B1s VM-Jenkins Sever已安装,但主页未打开

如何摆脱管道分隔字段中不需要的管道符号 - Linux

使用 bash 命令将文件从子文件夹复制到另一个

将 Visual Studio C++ 项目迁移到 Linux 和 CMake

内核是如何工作的?

如何将文件从 Vagrant 机器复制到 localhost

Vagrant chicken-and-egg:与 uid = apache 用户共享文件夹

如何在 Ubuntu 12.04 中更改 Jenkins 安装的端口号

C.UTF-8 和 en_US.UTF-8 语言环境有什么区别?

优雅地杀死在 Linux 上运行的 .NET Core 守护进程

cmake : 从脚本设置环境变量

bash中变量名后的2个逗号是什么意思?

cat、grep 和 cut - 翻译成 python

ngrok 如何在防火墙后工作?

如何使用 Linux 命令找到我的 shell 版本?

svn over HTTP 代理

如何限制我网站的 API 用户?