2017-02-24 79 views
0

我需要linux命令幫助。 我有2個文件StockSort和SalesSort。他們被排序,他們每個有3個領域。我知道如何對第1個文件中的1個字段和第2個文件中的1個字段進行排序。但是,我無法獲得正確的語法來加入第一個文件中的兩個字段,第二個文件中只有一個字段。我也需要將它保存爲新文件。 到目前爲止,我有這個命令,但它不起作用。我認爲錯誤是在「2,3」部分,我需要從第一個文件中結合兩個字段。加入原始的排序文件,在一個文件中包含2個字段,在第二個文件中包含1個字段

join -1 2,3 -2 2 StockSort SalesSort >FinalReport 

StockSort file 
3976:diode:350 
4105:resistor:750 
4250:resistor:500 

SalesSort file 
3976:120:net 
4105:250:chg 
5500:100:pde 

Output should be like this: 
3976:350:120 
4105:750:250 
4250:500:100 
+0

你可以更新文件的樣本和所需的輸出你的帖子? –

+0

@IanKenney更新了需要由字段 – Ana

+0

加入的表格什麼是預期產出? – dawg

回答

1

您可以嘗試

join -t: -o 1.1,1.3,2.2 stocksort salesort 

其中

-t set the column separator 
-o is the output format (a comma sep. list of filenumber.fieldnumber) 
+0

它的工作原理,謝謝 – Ana

1

這裏是一個awk:

$ awk 'BEGIN{ FS=OFS=":"} 
     FNR==NR {Stock[$1]=$3; next} 
     $1 in Stock{ print $1,Stock[$1],$2}' StockSort SalesSort 
相關問題