我有两个文件,一个是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"
我的目标是提取file2
中file1
中具有某种模式的行。所以,我抛出以下命令:
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并不认为这是一个字面意思。如何避免?
感谢。