我正在尝试使用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.处理它。我想做的是:
temporal3
中的第一行,我希望map
中的所有行都包含它。 temporal3
中的第二行,我希望获得map
中包含它的所有行。 temporal3
中的最后一行,我想让map
中的所有行都包含它。我试过了grep -Ff temporal3 map
但它没有用!这对我来说真的很令人惊讶。知道为什么这不起作用的任何想法?有任何建议来完成这项任务吗?非常感谢!
答案 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