2016-11-02 5 views
0

私は、ファイルが基本的にこの巨大なファイルから特定のテキストを削除

@SL2.50Ch00 
NNNNnnnnNNNNNNNNNNNNNNNNNNNNNNNNAAATAAATAATAATAATAATAATAATAA 
@SL2.50Ch01 

次まで+からすべて見えるようにしたい、この

@SL2.50Ch00 
NNNNnnnnNNNNNNNNNNNNNNNNNNNNNNNNAAATAAATAATAATAATAATAATAATAA 

+ 

fcii[cccff8cffiffcfffffiiiiiiiiiffNflllQllrrruru_uuruuur{~~Z 

@SL2.50Ch01 

のように見えるめちゃめちゃファイルを持っていますヘッダー@ SL2.5Ch01を削除する必要があります。私は+を削除する必要がありますが、@ SL2.5Ch01を残してください また、文字の数はここで+印の前に実際に何千もの文字が表示されるように私によってここで削減されています。

私はgrepを使って最初にそれを見つけようとしましたが、何もせずにそれを置き換えることにしました。

が試み:

grep '\n\+' 

grep -E '^M\+' 

が動作しないバックスラッシュでプラスを脱出しようとしています。

また、sedは行単位で動作します - ファイル全体をスキャンするにはどうすればよいですか? awkで結構です

答えて

0

場合は、これを試してみてください。

awk -vp=1 '/^[+]/{p=0} !p && /^@SL2.50/{p=1}p' file 

テスト:

$ awk -vp=1 '/^[+]/{p=0} !p && /^@SL2.50/{p=1}p' file 
@SL2.50Ch00 
NNNNnnnnNNNNNNNNNNNNNNNNNNNNNNNNAAATAAATAATAATAATAATAATAATAA 

@SL2.50Ch01 
+0

のProLiant-DL580-Gen8:〜/デスクトップ/ Z $ awkの-vp = 1「/^+/{p = 0}!p && /^@SL2.50/{p=1}p 'KA.fq awk:1行目:正規表現のコンパイルに失敗しました(構文エラー^ *または^ +) ^ + – Seigfried

+0

@eigfried、これを使う: 'awk -vp = 1 '/^[+]/{p = 0}!p && /^@SL2.50/{p=1}p' file' – sat

+0

awk -vp = 1 '/^\ +/{p = 0}!p && /^@SL2.50/{p=1}p' KA.fqちょうどプラスをエスケープして機能しました!ありがとう! – Seigfried

関連する問題