免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: sinian126
打印 上一主题 下一主题

求个思路 [复制链接]

sinian126 该用户已被删除
11 [报告]
发表于 2013-04-10 13:38 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
sinian126 该用户已被删除
12 [报告]
发表于 2013-04-10 13:40 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每月发帖之星
日期:2015-09-11 19:30:52IT运维版块每周发帖之星
日期:2015-09-11 19:20:31IT运维版块每日发帖之星
日期:2015-08-26 06:20:00每日论坛发贴之星
日期:2015-08-20 06:20:00IT运维版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15金牛座
日期:2014-05-04 16:58:09双子座
日期:2013-12-17 16:44:37辰龙
日期:2013-11-22 15:20:59狮子座
日期:2013-11-18 22:55:08射手座
日期:2013-11-12 10:54:26
13 [报告]
发表于 2013-04-10 13:42 |只看该作者
回复 11# sinian126
恩,看到了。
谢谢提醒。


   
sinian126 该用户已被删除
14 [报告]
发表于 2013-04-10 13:52 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
15 [报告]
发表于 2013-04-10 14:24 |只看该作者
回复 13# sinian126
Would you like to try ...

use strict;
use warnings;

my %hKey;
my @aKey = qw(AC ID FA TT AC BS);  # keyword

$hKey{$_}=1 foreach(@aKey);

my $sFin = "lizi.txt";  # file name
open(FHin, "<", $sFin) or die "can't open $sFin\n";

my @aItem = ();
my $sItem = "";
while(<FHin>){
  chomp;
  if(m|^//|){
    printf("%s\n", join("\t",@aItem)) if scalar @aItem;
    @aItem = ();
    $sItem = "";
    next;
  }
  if(m/^XX/){
    push @aItem, $sItem if length $sItem;
    $sItem = "";
    next;
  }
  my($sKey, $sData) = split(/\s+/,$_,2);
  if(exists $hKey{$sKey}){
    $sItem .= $sData;
  }
}
   
sinian126 该用户已被删除
16 [报告]
发表于 2013-04-10 16:24 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
sinian126 该用户已被删除
17 [报告]
发表于 2013-04-10 16:28 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
sinian126 该用户已被删除
18 [报告]
发表于 2013-04-10 16:29 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
19 [报告]
发表于 2013-04-11 10:06 |只看该作者
本帖最后由 jason680 于 2013-04-11 10:09 编辑

回复 16# sinian126

How about this to add "*" on miss item

use strict;
use warnings;

my %hLoc;
my @aKey = qw(AC ID FA TT BS);  
# note: keyword can use one time only

my $sCnt = 0;
$hLoc{$_}=$sCnt++ foreach(@aKey);

my $sFin = "lizi.txt";
open(FHin, "<", $sFin) or die "can't open $sFin\n";

my @aItem = ("*") x scalar(@aKey);
my $sItem = "";
while(<FHin>){
  chomp;
  if(m|^//|){
    printf("%s\n", join("\t",@aItem));
    @aItem = ("*") x scalar(@aKey);
    $sItem = "";
    next;
  }
  if(m/^XX/){
    next;
  }
  my($sKey, $sData) = split(/\s+/,$_,2);
  if(exists $hLoc{$sKey}){
    #print "***get '$sKey', '$sData' for location $hLoc{$sKey}\n";
    if($aItem[$hLoc{$sKey}] eq "*"){
      $aItem[$hLoc{$sKey}] = $sData;
    }
    else{
      $aItem[$hLoc{$sKey}] .= $sData;
    }  
  }
}
   
--- output ------------
T00001  T00001  AAF     *       R02116; ...
T00002  T00002  ACE2p   *       R24013; ...
T00003  T00003  AS-C T3 *       R03719; ...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP