[英]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.