Ich versuche, awk nach einem Teil der Zeichen zu suchen.mit awk auf einen Teil der Zeichen
cat myfile.txt
SIFT POLD POLH LRT MT MA
T B B N P N
null null null null null null
null null null null null null
T;.;.;.;.;. B B N P N
D P B D D M
T B B N P N
T;T;T;. B B N P;P;P N
D;. P B N P;P .
T;. B B N P;P .
In diesem Beispiel I Linien mit SIFT = T erhalten möchte (einschließlich "T; T; T ;."); POLD = B; POLH = B; LRT = N; MT = P, MA = N
würde ich normalerweise awk verwendet, um den Job zu erledigen, zB
awk -F'\t' '$1=="T" && $2=="B" && $3=="B" && $4=="N" && $5=="P" && $6=="N" myfile.txt
jedoch der Befehl oben ausschließen "T; T; T ;." in Spalte 1. Wie kann ich das auch einbeziehen?
Ist '($ 1 == "T" || $ 1 == "T; T; T;.")' Viel zu offensichtlich eine Lösung? –
Wollen Sie sagen, dass Sie T und T ausschließen möchten? Sie müssen genauer sein. Möchten Sie Zeilen abgleichen, in denen eines der Felder in Spalte 1 ein T ist, oder nur die zwei Zeilen mit 'T' und' T; T; T; .' oder etwas anderes? –
"T; T; T ;." ist nur eines der Muster in der ersten Spalte. Es gibt viele andere Muster, die ein "T" enthalten. Also im Grunde möchte ich alles aus der ersten Spalte bekommen, die ein "T" hat. Es kann "T;.;.;.;.;.." Sein. oder "T; T; T ;." und so weiter. –