2015-04-07 40 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

更新,良好的捕獲。謝謝。 –