基于列值组合制表符分隔文件
问题描述:
假设我有两个共享列的制表符分隔文件。这两个文件都有一个标题行,为每列提供了一个标签。什么是一个简单的方法来把两个表结合起来,即从A和B中取出列,但是根据列K的值来做呢?基于列值组合制表符分隔文件
例如,表A中可能是:
employee_id name
123 john
124 mary
和表B中可能是:
employee_id age
124 18
123 22
然后根据表A( “EMPLOYEE_ID”)的第1列的结合应产生表:
employee_id name age
123 john 22
124 mary 18
我想这样做使用Unix实用程序,如“切”等。这怎么可以做?
答
这是一个开始。我离开你格式化头需要
$ awk 'NR>1{a[$1]=a[$1]" "$2}END{for(i in a)print a[i],i}' tableA.txt tableB.txt
age employee_id
john 22 123
mary 18 124
另一种方式
$ join <(sort tableA.txt) <(sort tableB.txt)
123 john 22
124 mary 18
employee_id name age
实验与加入选项需要时(见信息页面或手册页)
答
可以使用join
工具,但你的文件需要先排序。
join file1 file2
man join
了解更多信息
答
尝试:
paste file1 file2 > file3
约翰为什么有18和22没有年龄?错字? – ghostdog74 2010-07-25 01:19:51