2016-11-02 4 views
0

Ich habe eine verkorkste Datei, die wie diese ähnlichenentfernen bestimmten Text aus einer riesigen Datei

@SL2.50Ch00 
NNNNnnnnNNNNNNNNNNNNNNNNNNNNNNNNAAATAAATAATAATAATAATAATAATAA 
@SL2.50Ch01 

Im Grunde alles, von der + bis zum nächsten

@SL2.50Ch00 
NNNNnnnnNNNNNNNNNNNNNNNNNNNNNNNNAAATAAATAATAATAATAATAATAATAA 

+ 

fcii[cccff8cffiffcfffffiiiiiiiiiffNflllQllrrruru_uuruuur{~~Z 

@SL2.50Ch01 

Ich mag die Datei suchen aussieht Header @ SL2.5Ch01 muss gelöscht werden. Ich muss das + löschen aber die @ SL2.5Ch01 behalten Auch die Anzahl der Buchstaben wurde hier von mir aus Gründen der Sichtbarkeit so gekürzt, dass es tatsächlich tausende von Buchstaben vor dem + Zeichen hier gibt.

Ich habe versucht, grep zu verwenden, um es zuerst zu finden, und dann sed, um es durch nichts zu ersetzen.

Versuchte:

grep '\n\+' 

Der Versuch, das Plus mit einem Backslash

grep -E '^M\+' 

funktioniert nicht, zu entkommen.

Auch sed funktioniert zeilenweise - wie frage ich es, um eine ganze Datei zu scannen?

Antwort

0

Wenn awk in Ordnung ist, dann ist dieses versuchen:

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

Test:

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

@SL2.50Ch01 
+0

ProLiant-DL580-Gen8: ~/Desktop/Z $ awk -vp = 1 ‚/^+/{p = 0}! p && /^@SL2.50/{p=1}p 'KA.fq awk: Zeile 1: Kompilierung des regulären Ausdrucks fehlgeschlagen (Syntaxfehler^* oder^+) ^ + – Seigfried

+0

@Seigfried, Verwenden Sie dies: 'awk -vp = 1 '/^[+]/{p = 0}! P && /^@SL2.50/{p=1}p' Datei' – sat

+0

awk -vp = 1 '/^\ +/{p = 0}! P && /^@SL2.50/{p=1}p' KA.fq Nur dem Plus entkommen und es hat funktioniert! Vielen Dank! – Seigfried

Verwandte Themen