我研究了许多类似的问答,但仍然停留在解决方案上。
我有2个档案。
文件1
cow
aaaaa
brown
bbbbb
often
ccccc
farts
ddddd
文件2
在File2中,以“ space”作为分隔符,然后输入col 1 =“ brown”和col2 =“ 149,456,foo”。另外,File1和File2的顺序不同(排序在这里不起作用,我想依靠匹配的键进行替换)。
brown 149,456,foo
cow 192,231,bar
farts 81,2007,tip
often 427,541,top
我想创建File3
cow 192,231,bar
aaaaa
brown 149,456,foo
bbbbb
often 427,541,top
ccccc
farts 81,2007,tip
ddddd
换句话说,记下column1-in-File2(棕色)并在File1中搜索它。在File1中找到该匹配项后,请将匹配项替换为相应File2的整行(棕色149,456,foo)。
我已经试过了:
$ awk 'NR==FNR{a[NR]=$0;next}{$6=a[FNR]}1' file2 file1
但是结果似乎占用了每个row1,然后将其与其他文件中的row1一起打印,不涉及匹配/替换。
brown brown 149,456,foo
aaaa cow 192,231,bar
cow farts 81,2007,tip
bbbbb often 427,541,top
farts
ccccc
often
ddddd
我想使用awk或sed。提前非常感谢您的任何建议!
$2
然后print $0, a[$1]
呢?那不是更简单清楚吗?