Я пытаюсь использовать grep Unix для поиска определенных последовательностей в файлах. Файлы обычно очень большие (~ 1 ГБ) с буквами «A», «T», «C» и «G». Эти файлы также занимают много-много строк, каждая из которых представляет собой слово из 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
игнорировать разрывы строк в целевой строке? Есть ли простой способ сделать это?
grep
кажутся довольно бессмысленными, поскольку они представляют собой случайные части последовательности (если только весь файл не является одной последовательностью). - person Lev Levitsky   schedule 19.09.2012tr -d '\\n' < inputfile >tempfile
- person wildplasser   schedule 19.09.2012