命令行grep给出了错误的结果

时间:2014-06-13 11:45:28

标签: grep

我有两个文件,一个是grep搜索模式,另一个是我想查找模式的目标文件。

文件1如下所示:

Cre01.g001800
Cre01.g001950
g46
g46
Cre01.g002050
Cre01.g002150
RPB6
g51
Cre01.g002201
Cre01.g002201
Cre01.g002236
Cre01.g002236
Cre01.g002300

我的第二个文件看起来像这样:

chromosome_12   scriptAPG   exon    3691112 3693536 .   +   .   gene_id "RPS11";transcript_id "RPS11"
chromosome_9    scriptAPG   exon    3011840 3038275 .   -   .   gene_id "Cre09.g387400";transcript_id "Cre09.g387400"
chromosome_9    scriptAPG   exon    2571100 2572801 .   +   .   gene_id "Cre09.g390678";transcript_id "Cre09.g390678"
chromosome_14   scriptAPG   exon    3804470 3817534 .   +   .   gene_id "Cre14.g632650";transcript_id "Cre14.g632650"
chromosome_3    scriptAPG   exon    4400340 4417459 .   +   .   gene_id "Cre03.g175600";transcript_id "Cre03.g175600"
scaffold_40 scriptAPG   exon    36  2671    .   +   .   gene_id "g18380";transcript_id "g18380"
chromosome_6    scriptAPG   exon    7445801 7457337 .   -   .   gene_id "Cre06.g300050";transcript_id "Cre06.g300050"
chromosome_17   scriptAPG   exon    584317  595135  .   +   .   gene_id "Cre17.g699950";transcript_id "Cre17.g699950"

我的目标是提取file2file1中具有某种模式的行。所以,我抛出以下命令:

grep -w -F -f ".$out."/localization/prep/translator.txt localization/prep/locations.gtf > localization/prep/genemodels.gtf

我不理解的是:为什么grep search的输出文件genemodels.gtf有没有匹配模式的行?它打印所有线!这样做:

grep Cre01.g003600 translator.txt

我没有得到任何结果。但是,这样做:

grep Cre01.g003600 genemodels.gtf 

我获得:

chromosome_1    scriptAPG   exon    688996  690516  .   +   .   gene_id "Cre01.g003600";transcript_id "Cre01.g003600"

你知道我做错了什么吗?可能是某些模式(例如.)有点Cre01.g001950吗? Grep并不认为这是一个字面意思。如何避免?

感谢。

0 个答案:

没有答案