我正在尝试使用 Unix 的 grep 来搜索文件中的特定序列。这些文件通常非常大(~1Gb),有 'A's、'T's、'C's 和 'G's。这些文件也跨越很多行,每行是一个 60 多个字符的单词。我遇到的问题是,当我在这些文件中搜索特定序列时,grep 将返回单行上出现的模式的结果,但如果模式跨越一行(中间某处有换行符)则不会。例如:
使用
$ grep -i -n "GACGGCT" grep3.txt
搜索文件 grep3.txt(我将目标“GACGGCT”放在双星中)
GGGCTTCGA**GACGGCT**GACGGCTGCCGTGGAGTCT
CCAGACCTGGCCCTCCCTGGCAGGAGGAGCCTG**GA
CGGCT**AGGTGAGAGCCAGCTCCAAGGCCTCTGGGC
CACCAGGCCAGCTCAGGCCACCCCTTCCCCAGTCA
CCCCCCAAGAGGTGCCCCAGACAGAGCAGGGGCCA
GGCGCCCTGAGGC**GACGGCT**CTCAGCCTCCGCCCC
退货
3:GGGCTTCGAGACGGCTGACGGCTGCCGTGGAGTCT
8:GGCGCCCTGAGGCGACGGCTCTCAGCCTCCGCCCC
所以,我的问题是grep
没有找到GACGGCT
跨越第 2 行末尾和第 3 行开头的。
如何使用 grep 查找在字符串中的任何位置可能包含或不包含换行符的目标序列?或者我怎么能告诉grep
忽略目标字符串中的换行符?有没有一种简单的方法可以做到这一点?