2015-04-07 28 views
1

我有一个家庭作业,说做一个文件,并把这个数据在它Unix的JOIN命令不是为我工作

Brown:82:53,000 
Anders:110:32,000 
Caplan:174:41,000 
Crow:95:36,000 

我叫这个empsal

然后叫empname另一个文件,其中包含

Brown:LaVerne:F:Accounting Department:444-7508: . . . 
Anders:Carol:M:Sales Department:444-2130: . . . 
Caplan:Jason:R:Payroll Department:444-5609: . . . 
Crow:Lorretta:L:Shipping Department:444-8901: . . . 

我必须使用join命令来加入这些文件,并使输出(称为empbud)看起来像这样。

Brown:LaVerne:Accounting Department:53,000 
Anders:Carol:Sales Department:32,000 
Caplan:Jason:Payroll Department:41,000 
Crow:Lorretta:Shipping Department:36,000 

所以我尝试使用命令这样

join -1 1 3 -2 1 2 4 empsal empname > empbud 

我想加入的姓氏,并从empsal工资和名字,部门和empname工资。

+0

'男人join'并查找'-o'(输出)选项。你快到了。祝你好运。 – shellter

+0

我试过 'join -1 1 3 -2 1 2 4 empsal empname -o empfinal' 它表示额外的操作数4 – BreeBreeBRAN

+0

并且还记得对输入文件进行排序:并且您需要查看'-t '选项 –

回答

1

你要找的是-o FORMAT规格:

join -j 1 -t : -o 2.1,2.2,2.4,1.3 empsal empname 

输出

Brown:LaVerne:Accounting Department:53,000 
Anders:Carol:Sales Department:32,000 
Caplan:Jason:Payroll Department:41,000 
Crow:Lorretta:Shipping Department:36,000 

命令分解如下:

​​

加入与field 1文件领域sep arator :输入文件必须按要排序的字段进行连接。然后格式说明:

-o 2.1,2.2,2.4,1.3 

提供包含输出file2:field1file2:field2file2:field4file1:field3

+0

...以及排序的输入文件。 – tripleee

+0

更新,良好的捕获。谢谢。 –