请问Linux如何提取特定行数据(提取两个关键词行之间的行)
比如:chr1680.50.660.770.3chr2540.60.30.89chr6780.6580.5chr3440.530.5960.650.68希望得到chr25...
比如:
chr168
0.5
0.66
0.77
0.3
chr254
0.6
0.3
0.89
chr678
0.658
0.5
chr344
0.53
0.596
0.65
0.68
希望得到chr254到chr678之间的结果
结果如下:
chr254
0.6
0.3
0.89 展开
chr168
0.5
0.66
0.77
0.3
chr254
0.6
0.3
0.89
chr678
0.658
0.5
chr344
0.53
0.596
0.65
0.68
希望得到chr254到chr678之间的结果
结果如下:
chr254
0.6
0.3
0.89 展开
2个回答
展开全部
cat $file | awk '{if($0~/chr254/){flag=1};if($0~/chr678/){flag=0};if(flag==1){print $0}}'
追问
如果我想求每个chr下面的平均值该怎么办呢
结果这样:
chr168 0.5575
chr254 0.5967
chr678 0.579
chr234 0.614
追答
awk '{if($0~/chr/){i=1;j=0;f=$0;p=0;k=0}else{j=1};if(i==1 && j==1){p++;k+=$0;res[f]=k/p;}}END{for(c in res){print c"\t"res[c]}}'
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询