如何在grep中刮掉行尾?

时间:2016-09-23 15:18:42

标签: bash grep multilinestring

我有一个包含已经分成行的序列的文件,如下所示:

CGCCCATGGGTCGTATACGTAATGGGAAAACAAAGCATGGTGTAACTATGGTAAGTGCTA
GACAATACAAGAAGGCTGATATTTGTAGAATAATTCATTTGAATTATTATGCTGTAAATA
GCTAGATTATTATGCATAATTACTTTGAGAGGTGATCAATCAATTCGACCCTTGCCAATT

我想在此文件中搜索特定模式,例如GCTGTAAATAGCTAGATTA。 问题是图案可能会在不可预测的地方换行。

我可以使用:

grep -e "pattern" file 

但它无法避免"新线"性格并没有给出结果。如何修改我的命令以忽略搜索中的\n

编辑: 我不知道我的查询是否存在于文件中,如果存在,我不知道它存在于何处。

我想到的最佳解决方案是

tr -d '\n' < file | grep -e "CTACCCCAGACAAACTGGTCAGATACCAACCATCAGCGAAACTAACCAAACAAA"

但我知道应该有更有效的方法来做到这一点。

1 个答案:

答案 0 :(得分:-1)

pattern="GCTGTAAATA"$'\n'"GCTAGATTA"  # $'\n' is Bash's way of mentioning special chars 
grep -e "$pattern" file 

OR

pattern="GCTGTAAATA
GCTAGATTA"   # with an actual newline at the end of the first line
grep -e "$pattern" file