在部分字符上使用awk

时间:2016-11-22 08:29:25

标签: awk

我试图用awk来寻找部分角色。

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     .

在这个例子中,我想得到SIFT = T的行(包括" T; T; T;。"); POLD = B; POLH = B; LRT = N; MT = P,MA = N

我通常会用awk来完成这项工作,例如

awk -F'\t' '$1=="T" && $2=="B" && $3=="B" && $4=="N" && $5=="P" && $6=="N" myfile.txt 

但是,上面的命令将排除" T; T; T;。"在第1栏中。我怎样才能包括这个?

1 个答案:

答案 0 :(得分:1)

您可以使用awk,如下所示

$ awk '$1 ~ /T/' file
SIFT    POLD    POLH    LRT     MT      MA
T       B       B       N       P       N
T;.;.;.;.;.     B       B       N       P       N
T       B       B       N       P       N
T;T;T;. B       B       N       P;P;P   N
T;.     B       B       N       P;P     .