我正在尝试在其中一个列上连接两个文件,输出应该是第二个文件的列和第一个文件中的一些列。
例如我的第一个文件是:
subscriberid unsubscribetime unsubscribeip listid statid unsubscribed
我的第二个文件是:
listid statid listname ownername owneremail createdate subscriberid bouncetype bouncetime bouncerule
我需要在“statid”列中加入它们,该列在第一个文件中是第5个,在第二个文件中是第2个。之后,从第一个文件中添加第2,第3和第6列。输出应为:
listid statid listname ownername owneremail createdate subscriberid bouncetype bouncetime bouncerule unsubscribetime unsubscribeip unsubscribed
我无法理解语法,但我正在使用此命令:
awk 'NR==FNR{a[$5]=$2;next} $2 in a{print $0, a[$5]}' file1 file2
我认为它会给我file2列,因为“print $ 0”和第二列表单文件一个设置为[$ 5] = $ 2,但它只输出file2列。
我在哪里弄错了,拜托? 如何将第1列,第3列和第6列从file1加到file2?
非常感谢任何帮助/解释!
此示例中的两个文件只有一行
答案 0 :(得分:2)
我确定你是否看到了这一点并想一想你会弄清楚:
$ awk 'NR==FNR{a[$5]=$2" "$3" "$6;next} $2 in a{print $0, a[$2]}' file1 file2
listid statid listname ownername owneremail createdate subscriberid bouncetype bouncetime bouncerule unsubscribetime unsubscribeip unsubscribed