bash – 根据字符串中的ID删除重复的行

原创 287865  2019-06-05 17:09 

我想根据输入行中

 &lt;代码开始[<br /> geneid:<br />]代码结束&gt;

之后的数字删除重复项(并保留第一个重复项)。我只知道如何按列过滤:

 &lt;代码开始[<br /> awk'!see [$ 3] ++'<br />]代码结束&gt;

但这在这里不起作用。

输入( tab分离):

 &lt;代码开始[<br /> gene1 mrna geneid:109200613; genbank:xm_019356191.2 gene2 mrna geneid:109200613; genbank:xm_019356192.2 gene3 mrna geneid:109200614; genbank:xm_019356193.2 gene4 mrna geneid:109200615; genbank:xm_019356193.2 <br />]代码结束&gt;

out:

 &lt;代码开始[<br /> gene1 mrna geneid:109200613; genbank:xm_019356191。 2 gene3 mrna geneid:109200614; genbank:xm_019356193.2 gene4 mrna geneid:109200615; genbank:xm_019356193.2 <br />]代码结束&gt;

最佳答案例:


你可以用

 &lt;代码开始[<br />排序<br />删除重复项代码结束&gt;

 &lt;代码开始[<br /> uniq <br />]代码结束&gt;

,但这只有在整行重复时才有效。

 &lt;代码开始[<br /> $ cat unsorted.txt gene1 mrna geneid:109200613; genbank:xm_019356191.2gene1 mrna geneid:109200613; genbank:xm_019356192.2gene1 mrna geneid:109200614; genbank:xm_019356193.2gene1 mrna geneid:109200614; genbank:xm_019356193.2 $ sort unsorted.txt | uniq&gt; sorted.txt $ cat sorted.txt gene1 mrna geneid:109200613; genbank:xm_019356191.2gene1 mrna geneid:109200613; genbank:xm_019356192.2gene1 mrna geneid:109200614; genbank:xm_019356193.2 <br />]代码结束&gt;
[ 123]
本文地址:https://www.xileso.top/304.shtml
版权声明:本文为原创文章,版权归 287865 所有,欢迎分享本文,转载请保留出处!

发表评论


表情