24小时热门版块排行榜    

查看: 608  |  回复: 4

junruiwang

新虫 (小有名气)

[求助] 新手刚入门,求大神们帮忙修改程序。。已有1人参与

#!/usr/bin/perl
open FILE, "2.txt";
open ID, "os1.txt";
open (RESULT, ">ll";
chomp and $h{$_}++ while <ID>;
while(<FILE>{
    my (undef, $id) = split /\t/;
    print RESULT if exists $h{$id};
}
close(FILE);
close(ID);

原始文件1.txt
a 1 3 6
b 2 8 1
c 5 2 7
d 6 12 13
e 2 3 6

2.txt为
a
d
e
根据2列出的编号,提取出1中的行。

发自小木虫Android客户端
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

junruiwang

新虫 (小有名气)

2楼2016-07-22 10:48:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jackie1179

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
将代码部分放进
CODE:
   

之间就不会出现这种情况了
改动如下:
CODE:
#!/usr/bin/perl
open FILE, "2.txt";
open ID, "os1.txt";
open (RESULT, ">ll");
chomp and $h{$_}++ while <ID>;
while(<FILE>) {
    chomp;
    [at=4379798]temp[/at] = split /\t/;
    $id = $temp[0];
    print RESULT "$_\n" if exists $h{$id};
}
close(FILE);
close(ID);
close RESULT;

» 本帖已获得的红花(最新10朵)

3楼2016-07-24 22:49:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

junruiwang

新虫 (小有名气)

送红花一朵
引用回帖:
3楼: Originally posted by jackie1179 at 2016-07-24 22:49:30
将代码部分放进   之间就不会出现这种情况了
改动如下:

#!/usr/bin/perl
open FILE, "2.txt";
open ID, "os1.txt";
open (RESULT, ">ll";
chomp and $h{$_}++ while &l ...

您添加的那两行具体能麻烦您解释一下吗?看不太懂~

发自小木虫Android客户端
4楼2016-07-25 09:07:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jackie1179

木虫 (正式写手)

引用回帖:
4楼: Originally posted by junruiwang at 2016-07-25 09:07:28
您添加的那两行具体能麻烦您解释一下吗?看不太懂~
...

'
CODE:
'   '

'

@temp = split /\t/; 实际上是
@temp = split /\t/;        ## 按Tab键分割每行,并放入数组
$id = $temp[0];           ##数组第一个元素为待匹配的字段
5楼2016-07-25 15:36:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 junruiwang 的主题更新
信息提示
请填处理意见