从文件中grep一个模式

时间:2013-05-29 01:36:44

标签: shell command-line express grep

我正在尝试使用grep来提取快速值。

我运行eXpress并且我的.xprs选项卡分隔值文件如下所示:

bundle_id   target_id   length  eff_length  tot_counts  uniq_counts est_counts  eff_counts  ambig_distr_alpha   ambig_distr_beta    fpkm    fpkm_conf_low   fpkm_conf_high  solvable
1   Contig14365 310 106.787904  85  85  85.000000   246.750792  0.000000e+00    0.000000e+00    147.370523  147.370523  147.370523  T
2   Singlet_45262   346 232.432874  109 37  89.933541   133.875234  1.998601e+00    7.198885e-01    71.637085   51.273440   92.000730   T
2   Singlet_68764   236 119.092916  74  2   21.066459   41.746263   6.254955e+00    1.736541e+01    32.750608   0.142967    65.358248   T
3   Contig1270  736 500.694431  50  0   0.125252    0.184116    1.000000e+00    1.000000e+00    0.046316    0.000000    0.759071    F
3   Contig1271  851 628.717767  57  9   43.657462   59.092492   4.701649e-01    1.810055e-01    12.856315   4.051524    21.661106   T
3   Singlet_69558   790 555.880836  50  0   15.217286   21.626318   1.000000e+00    1.000000e+00    5.068381    0.000000    12.670313   F

我想获得非编码RNA特异性表达值,所以我想使用:

grep -f <list of ncRNAs contigs> <express file>

我创建了一个包含ncRNAs contigs ID的文件,如下所示:

Singlet_51268
Singlet_63946
Singlet_70630
Singlet_72272
Singlet_60543
Contig11105
Singlet_18043
Singlet_64779
Singlet_50335
Singlet_39678
Singlet_21655
Singlet_5438
Singlet_6400
Contig4197
Singlet_17193
Singlet_55710
Singlet_70948
Singlet_25172
Singlet_65515
Singlet_30239
Singlet_54617
Singlet_11188
Contig14540

由于我的ncRNA是577,我希望最终得到一个包含577行的.xprs文件,但我最终获得了701个Contigs的.xprs文件。

所以我有124个与我的ncRNA不相符的重叠群。

我怎样才能提取特定于ncRNAs的值?我尝试用grep玩,但我无法解决它。

有什么建议吗?

感谢

2 个答案:

答案 0 :(得分:1)

如果您可以使用awk,那么这应该有用 -

awk 'NR==FNR {a[$1]++; next} $2 in a' file xprs

答案 1 :(得分:1)

我用过

grep -w -f <list of ncRNAs contigs> <express file>

它工作正常!

注意:

-w将grep限制为仅限整个单词,因此grep不会搜索&#34; 12345&#34;并拔出&#34; 123456&#34;。