如果字段中有点,则打印列标题的awk

如果字段中有点,则打印列标题的awk,awk,Awk,在下面以选项卡分隔的文件中,我试图使用awk打印字段的标题,如果它们包含单个(点)。其他字段不应包含,我将使用另一个awk来检测这些数据类型(alpha或integer,可以是十进制)。下面的代码看起来很接近,但没有按预期工作。谢谢:) 文件 Index HGMD Sanger Classification Pop 1 . . VUS .36 awk awk -F'\t' '$2 && $3 ~ /./ && FNR ==

在下面以
选项卡分隔的
文件
中,我试图使用
awk
打印字段的标题,如果它们包含单个
(点)。其他字段不应包含
,我将使用另一个
awk
来检测这些数据类型(alpha或integer,可以是十进制)。下面的代码看起来很接近,但没有按预期工作。谢谢:)

文件

Index   HGMD    Sanger  Classification     Pop
1   .   .   VUS     .36
awk

awk -F'\t' '$2 && $3 ~ /./ && FNR == 1 {printf "dot detected in fields: ORS $0"}' file
Index   HGMD    Sanger  Classification
所需输出

dot detected in fields: HGMD, Sanger

使用
Awk
,如下所示

awk 'BEGIN{FS="\t"}NR==1{for(i=1;i<=NF;i++) header[i]=$i}{for(i=1;i<=NF;i++) { if (match($i,/^\.$/)) { print header[i] } } }' file
HGMD
Sanger

awk'BEGIN{FS=“\t”}NR==1{for(i=1;i使用
awk
,如下所示

awk 'BEGIN{FS="\t"}NR==1{for(i=1;i<=NF;i++) header[i]=$i}{for(i=1;i<=NF;i++) { if (match($i,/^\.$/)) { print header[i] } } }' file
HGMD
Sanger

awk'BEGIN{FS=“\t”}NR==1{for(i=1;i假设您希望列的标题在任何一行上都有一个点(
HGMD
Sanger
此处):

一种解决办法是:

awk -F'\t' 'NR==1 {for (i=0 ; i <= NF ; i++) headers[i] = $i; }     # 1
    NR!=1 {for (i=0 ; i <= NF ; i++) if ($i == ".") dots[i] = 1}    # 2
    END { printf "Dots in fields: ";                            
         for (x in headers) if (dots[x]) printf "%s ", headers[x];  # 3
         printf "\n"
}  ' file 

awk-F'\t''NR==1{for(i=0;i假设您希望列的标题在任何一行上有一个点(
HGMD
Sanger
):

一种解决办法是:

awk -F'\t' 'NR==1 {for (i=0 ; i <= NF ; i++) headers[i] = $i; }     # 1
    NR!=1 {for (i=0 ; i <= NF ; i++) if ($i == ".") dots[i] = 1}    # 2
    END { printf "Dots in fields: ";                            
         for (x in headers) if (dots[x]) printf "%s ", headers[x];  # 3
         printf "\n"
}  ' file 
awk-F'\t''NR==1{for(i=0;i
awk'
NR==1{split($0,hdr);next}
{
对于(i=1;i
awk'
NR==1{split($0,hdr);next}
{

for(i=1;i
.36
是一条记录还是两条记录?对不起,这是两条记录。基本上,
本身将是一个空值。.36是一个十进制数,表示
36%
。谢谢:).
.36
是一条记录还是两条记录?很抱歉,这是两条记录。基本上,
本身将是一个空值。.36是一个十进制数,表示
36%
。谢谢:)。与其使用
匹配,不如使用
if($i=>)…
稍微简单一点。谢谢你们的帮助和解释:)。与其使用
匹配
也许
如果($i=>)…
稍微简单一点。谢谢你们的帮助和解释:)。