繁体   English   中英

AWK:合并文件中的列

[英]Awk: merging columns from files

我有两个文件,我必须从两个文件中提取所需的列并将它们合并在一起。 我想用awk做到这一点。

所以从FileB我需要$ 9-> $ 12。 如果$ 4的FileA与$ 12的FileB相匹配,则需要从FileA获得$ 1,$ 2,$ 3,$ 5和$ 6。

这是我到目前为止的内容:

script.awk:

FNR==NR {
    blah = $12
    gsub(/"/,"",blah); gsub(/;/,"",blah);
    array[blah]=$9,$10,$11,$12  ## This breaks here
    next
}

{
    if ($4 in array) {
        print $1,"TransMap","Tcon",$2,$3,$5,$6,".",array[$4]
    }
}

我将像这样运行:awk -f script.awk fileB fileA因此,请注意,FileB的$ 12不是完全匹配的项,任何与$ 4的匹配项都将采用以下格式:“ $ 4”; (因此gsubs)。 我需要的是这种格式,而不是最终输出中$ 4的格式,这就是我这样做的原因。

array [blah] = $ 9,$ 10 ...(显然)换行了。 但是我需要FileB的所有这四个字段-我该如何解决? 尚不清楚awk的在线说明。

尝试

 array[blah]=$9","$10","$11","$12

我只能猜测问题而看不到数据。 我想您希望将$ 9-12用逗号连接起来。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM