shell中的grep无法按预期工作

时间:2014-05-14 16:27:28

标签: bash shell grep

我正在尝试使用shell的temporal3函数从另一个文件(名称为map)中的一个文件(名为grep)中搜索文本。以下是这些文件的一小部分:

temporal3

TACTATATTACTGGAAAAACCATCAAGCTAGACCA
AATATGTCCCAGTTGAAGAGAATTATCATTTTGAG
AGAATTATCATTTTGAGATTGCTATCGTTCACCAA
AATATGTCCCAGTTGAAGAGAATTATCATTTTGAG
CTAGACCAATATAATATGTCCCAGTTGAAGAGAAT
AGATTGCTATCGTTCACCAAATACTGGCAAATAAT

map

CTTCTGAATCCGCCAGGAGTTCTACCTCGATCAAATAATGACACTTTGCACTTGATTTTTCATCAAGAAAGTCAGTCAAATAGTTCCAGAAATGGACACAA
ATCTCACATCCCTTACTATATTACTGGAAAAACCATCAAGCTAGACCAATATAATATATCCCAGTTGAAGAGAATTATCATTTTGAGATTGCTATCGTTCA
TCACATCCCTTACTATATTACTGGAAAAACCATCAAGCTAGACCAATATAATATGTCCCAGTTGAAGAGAATTATCATTTTGAGATTGCTATCGTTCACCA
AGACCAATATAATATGTCCCAGTTGAAGAGAATTATCATTTTGAGATTGCTATCGTTCACCAAATACTGGCAAATAATCTCCTTCTGAATCCGCCAGGAGT
CCAGTTGAAGAGAATTATCATTTTGAGATTGCTATCGTTCACCAAATACTGGCAAATAATCTCCTTCTGAATCCGCCAGGAGTTCTACCTCGATCAAATAA
GAGATTCATCTCACATCCCTTACTATATTACTGGAAAAACCATCAAGCTAGACCAATATAATATGTCCCAGTTGAAGAGAATTATCATTTTGAGATTGCTA
AGACCAATATAATATGTCCCAGTTGAAGAGAATTATCATTTTGAGATTGCTATCGTTCACCAAATACTGGCAAATAATCTCCTTCTGAATCCGCCAGGAGT
AACCATCAAGCTAGACCAATATAATATGTCCCAGTTGAAGAGAATTATCATTTTGAGATTGCTATCGTTCACCAAATACTGGCAAATAATCTCCTTCTGAA
TTCATCTCACATCCCTTACTATATTACTGGAAAAACCATCAAGCTAGACCAATATAATATGTCCCAGTTGAAGAGAATTATCATTTTGAGATTGCTATCGT
ATAGCGAGATTCATCTCGCATCCCTTACTATATTACTGGAAAAACCATCAAGCTAGACCAATATAATATGTCCCAGTTGAAGAGAATTATCATTTTGAGAT

真正的map文件是一个(〜20Gb),所以我无法用R.处理它。我想做的是:

  1. 对于temporal3中的第一行,我希望map中的所有行都包含它。
  2. 对于temporal3中的第二行,我希望获得map中包含它的所有行。
  3. ...
  4. 对于temporal3中的最后一行,我想让map中的所有行都包含它。
  5. 我试过了grep -Ff temporal3 map但它没有用!这对我来说真的很令人惊讶。知道为什么这不起作用的任何想法?有任何建议来完成这项任务吗?非常感谢!

2 个答案:

答案 0 :(得分:1)

您可以使用:

#!/bin/bash

> output
while read -r line; do
    grep -F "$line" map >> output
done < temporal3

答案 1 :(得分:1)

谢谢@anubhava! 这就是我要的。我也改变了一点:

 #!/bin/bash

 > output
 while read -r line; do
     echo $line >> output
     grep -Fn "$line" map >> output
 done < temporal3