为列的每个唯一值输出整行一次(Bash)
发布时间:2020-12-15 18:56:39 所属栏目:安全 来源:网络整理
导读:这肯定是awk或其他方面的一项微不足道的任务,但它让我今天早上挠头.我有一个格式与此类似的文件: pep AEYTCVAETK 2 genes ADUm.1024,ADUm.5198,ADUm.750pep AIQLTGK 1 genes ADUm.1999,ADUm.3560pep AIQLTGK 8 genes ADUm.1999,ADUm.3560pep KHEPPTEVDIEGR
这肯定是awk或其他方面的一项微不足道的任务,但它让我今天早上挠头.我有一个格式与此类似的文件:
pep> AEYTCVAETK 2 genes ADUm.1024,ADUm.5198,ADUm.750 pep> AIQLTGK 1 genes ADUm.1999,ADUm.3560 pep> AIQLTGK 8 genes ADUm.1999,ADUm.3560 pep> KHEPPTEVDIEGR 5 genes ADUm.367 pep> VSSILEDKTT 9 genes ADUm.1192,ADUm.2731 pep> AIQLTGK 10 genes ADUm.1999,ADUm.3560 pep> VSSILEDKILSR 3 genes ADUm.2146,ADUm.5750 pep> VSSILEDKILSR 2 genes ADUm.2146,ADUm.5750 我想在第2列中为每个不同的肽值打印一行,这意味着上面的输入将成为: pep> AEYTCVAETK 2 genes ADUm.1024,ADUm.2731 pep> VSSILEDKILSR 3 genes ADUm.2146,ADUm.5750 这是我到目前为止所尝试过的,但显然我也不需要: awk '{print $2}' file | sort | uniq # Prints only the peptides... awk '{print $0,"t",$1}' file |sort | uniq -u -f 4 # Altogether omits peptides which are not unique... 最后一点,它需要将作为其他肽的子串的肽作为不同的值处理(例如VSSILED和VSSILEDKILSR).谢谢 :)
使用awk的一种方法:
awk '!array[$2]++' file.txt 结果: pep> AEYTCVAETK 2 genes ADUm.1024,ADUm.5750 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- BootStrap入门教程 (二)
- scala – 如何在使用sbt和testng时在测试中抛出的异常获得完
- Windows – Docker Machine无法使用hyperv成功访问ip地址
- scala – 如何使用精炼来表达约束的常量> 22
- bash – 循环只在主体中使用`ssh`迭代一次
- 与Angularjs 1.X中的$watch相比,rxjs observable如何执行?
- bash – csh / sh for循环 – 怎么样?
- WebService(二)—JDK内置JAX-WS实现SOAP WebService
- MySQL Waiting for table metadata lock故障分析
- 在bootstrap modal dialog中使用webupload,打不开对话框问