Ich möchte ein Muster suchen, das ein bisschen komplex ist, ich habe bereits gelernt, dass ich \ | angeben muss anstelle von | im Skript, aber wie schließe ich den Leerraum ein, um genau diesem Muster zu entsprechen.Wie suche ich ein Muster mit den Leerzeichen in awk?
TR40663|c0_g1_i2|m.33339 TR40663|c0_g1_i2|g.33339 ORF TR40663|c0_g1_i2|g.33339 TR40663|c0_g1_i2|m.33339 type:5prime_partial len:1730 (+) TR40663\|c0_g1_i2:3-5192(+) [specie]
Ich habe diesen Code zu verwenden, die eine Sequenz mit den Mustern
awk 'BEGIN{RS=">";FS="\n"}NR>1{if ($1~/pattern) print ">"$0}' file
Ich weiß nicht, ob die ~/ist auch mit dem Code durcheinander verwandt abruft. Später werde ich eine Liste von Elementen in mehreren Dateien übergeben, aber jetzt möchte ich zuerst dieses Muster/diese Suche überprüfen.
Danke für die Hilfe
Warum nicht grep verwenden? – stark
@stark Sie können grep nicht verwenden, da grep zeilenbasiert ist, nicht wie awk aufzeichnungsbasiert ist. Daher können Sie kein Datensatztrennzeichen mit grep angeben, um mehrzeilige Datensätze zu suchen und zu drucken. Das Poster verwendet '>' anstelle von Zeilenumbrüchen, um Datensätze zu trennen. Andres - '~ /' ist kein Operator. '~' ist ein Operator und '/.../' sind die statischen Regexp-Trennzeichen. Befreien Sie sich von '/' von '~ /', da ich sicher bin, dass der Syntaxfehler Sie bereits dazu auffordert. –
Whitespace hat in Regexp-Mustern keine besondere Bedeutung, Sie müssen also nichts Besonderes tun, um sie einzuschließen. – Barmar