亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 去除重復(fù)內(nèi)容并合并多個(gè)文本 [打印本頁(yè)]

作者: tingshuibanxia    時(shí)間: 2016-08-17 14:05
標(biāo)題: 去除重復(fù)內(nèi)容并合并多個(gè)文本
如題。假如
文本A:
>123
EWDRESRF
>434  7
GFHHHHHHHHHHHHSD
>4_  7
RTGFGFHGFF
...

文本B:
>34SF
EDWRDFDEWDRESRFRFEFQQQ
>3_  7
RTGFGFHGF
>1111111111
GFHHHHHHHHHHHHSD
...

文本C:
>123
RTGFGFHGF
>RER
DFFDGFHOEIWR
...

將文本間相同序列合并為一個(gè)(加粗部分),并且標(biāo)識(shí)符>以第一個(gè)文件為準(zhǔn),只保留多個(gè)文本各自不同的部分和共有部分,
上述得到:

>123
EWDRESRF
>434  7
GFHHHHHHHHHHHHSD
>4_  7
RTGFGFHGFF
>34SF
EDWRDFDEWDRESRFRFEFQQQ
>RER
DFFDGFHOEIWR
作者: MMMIX    時(shí)間: 2016-08-17 14:56
就是根據(jù)序列去重嘛
作者: jason680    時(shí)間: 2016-08-17 15:56
去重 ==> !$h{$_}++

$ perl -lne '{if(m/^>/){$k=$_;next}if(!$h{$_}++){print "$k\n$_"}}' A B C
>123
EWDRESRF
>434  7
GFHHHHHHHHHHHHSD
>4_  7
RTGFGFHGFF
>34SF
EDWRDFDEWDRESRFRFEFQQQ
>3_  7
RTGFGFHGF
>RER
DFFDGFHOEIWR
作者: sunzhiguolu    時(shí)間: 2016-08-17 16:41
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;

  4. $/ = ">";
  5. my (%hKeys);
  6. while (<>){
  7.     chomp;
  8.     my ($id, $str) = split (/\n/);
  9.     next if (!$id);
  10.     if ($ARGV eq 'a'){
  11.         $hKeys{$id} = $str;
  12.         print ">$id\n$str\n";
  13.         next;
  14.     }
  15.     next if (exists $hKeys{$id} or grep {$_ eq $str} values %hKeys);
  16.     print ">$id\n$str\n";
  17. }
復(fù)制代碼
perl abc.pl a b c
--------------------------------------------------------------------------------------------
>123
EWDRESRF
>434  7
GFHHHHHHHHHHHHSD
>4_  7
RTGFGFHGFF
>34SF
EDWRDFDEWDRESRFRFEFQQQ
>3_  7
RTGFGFHGF
>RER
DFFDGFHOEIWR

作者: sunzhiguolu    時(shí)間: 2016-08-17 16:46
本帖最后由 sunzhiguolu 于 2016-08-17 16:53 編輯

抱歉...


















作者: tingshuibanxia    時(shí)間: 2016-08-17 16:50
回復(fù) 3# jason680


    大神,這個(gè)問(wèn)題怎么破?http://www.72891.cn/thread-4252601-1-1.html
用grep -x -B1后多出了第三行 “--”




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2