+ -
当前位置:首页 → 问答吧 → 怎么样提取数据特定位置的数值?

怎么样提取数据特定位置的数值?

时间:2011-07-15

来源:互联网

例如我有如下数据:
chr2    1       50      
chr2    1       50     
chr2    3       52      
chr2    4       53      
chr2    5       54      
chr2    5       54      
chr2    5       54      
chr2    58      107     
chr2    58      107     
chr2    58      107     
我想提取第二列或者第三列特定位置的数值,怎么样实现?
譬如说我想提取倒数第三行的第三列的数值(即107)
麻烦大家提供一个perl脚本,我提取完特定位置的数据还有后续的分析。。。。。

作者: bgi_jeffrey   发布时间: 2011-07-15

没人回帖???

作者: 最爱在深秋   发布时间: 2011-07-16

回复 bgi_jeffrey


   

QUOTE:
perl -aF'/\s+/' -lne '$line=3;$row=3;print $F[$row-1] if($.==$line)' file # 第3行,第3列
52

作者: yinyuemi   发布时间: 2011-07-16

回复 yinyuemi


    可否写详细一点的perl脚本? perl的命令行我还不是看的很懂,谢谢~~

作者: bgi_jeffrey   发布时间: 2011-07-16

回复 yinyuemi


    if($.==$line) 是什么意思?

作者: bgi_jeffrey   发布时间: 2011-07-16

回复 bgi_jeffrey


$. 表示行号
  1. #!/bin/perl
  2. use strict;

  3. my $line=3;
  4. my $row=3;
  5. my @F;

  6. while (<DATA>){
  7.         chomp;
  8.         @F=split /\s+/;
  9.         print $F[$row-1],"\n" if($.==$line);
  10.         }

  11. __DATA__
  12. chr2    1       50      
  13. chr2    1       50     
  14. chr2    3       52      
  15. chr2    4       53      
  16. chr2    5       54      
  17. chr2    5       54      
  18. chr2    5       54      
  19. chr2    58      107     
  20. chr2    58      107     
  21. chr2    58      107
复制代码

作者: yinyuemi   发布时间: 2011-07-16