2016-09-23 9 views
0

私は、このような何か、すでに行に分割シーケンスを含むファイルを持っている:私は、例えばGCTGTAAATAGCTAGATTAのように、このファイル内の特定のパターンを検索したいgrepで行末を掻きする方法は?

CGCCCATGGGTCGTATACGTAATGGGAAAACAAAGCATGGTGTAACTATGGTAAGTGCTA 
GACAATACAAGAAGGCTGATATTTGTAGAATAATTCATTTGAATTATTATGCTGTAAATA 
GCTAGATTATTATGCATAATTACTTTGAGAGGTGATCAATCAATTCGACCCTTGCCAATT 

を。 問題は、パターンが改行によって予測できない場所で切断される可能性があることです。

は、私が使用することができます。

grep -e "pattern" file 

が、それは「改行」文字を避けることができないとの結果を与えるものではありません。検索で\nを無視するようにコマンドを変更するにはどうすればよいですか?

編集: 私のクエリがファイルに存在するかどうかわかりませんが、そこに存在する場合はどこに存在するのか分かりません。私の心に入って来た

最善の解決策は、

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

ですが、私はそれを行うには、より効率的な方法があるはずです知っています。

+0

これはその質問に、彼はこれら二つの単語が異なる行であることを知っているので、彼はそれらの間のエスケープ文字を置くことができ、その質問とは異なります。しかし、私の場合、私はどこに\ nを置くべきかわからない。下の答えでさえもうまくいきません。 – user2373198

+0

たとえば、 'abc。*(\ n |。)* efg' test.txtという答えを見ると、彼はabcとefgの間に\ nを置くべきだと知っています。 – user2373198

答えて

-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 
+0

このパターンがファイルに存在するかどうかわからないので、どこに "\ n"を置くべきか分かりません。どの行に存在するかわかりません。 – user2373198

+0

@ user2373198ああ、私は参照してください。 – euphoria83

関連する問題