Awk:合并文件中的列

时间:2013-03-13 16:45:59

标签: linux bash scripting awk text-parsing

我有两个文件,我必须从两个文件中取出我需要的列并将它们合并在一起。我想用awk来做这件事。

所以从FileB我需要$ 9-> $ 12。如果FileA的4美元与FileB的12美元相匹配,我需要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美元,这就是我这样做的原因。

数组[blah] = $ 9,$ 10 ...换行awk(显然)。但我需要FileB中的所有4个字段 - 我将如何解决这个问题? awk的在线说明不明确。

1 个答案:

答案 0 :(得分:1)

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

我只能在没有看到数据的情况下猜测这个问题。我想你想用逗号连接9-12美元。