2017-02-24 3 views
0

Ich brauche Hilfe mit Linux-Befehl. Ich habe 2 Dateien StockSort und SalesSort. Sie sind sortiert und sie haben jeweils 3 Felder. Ich weiß, wie man 1 Feld in 1. Datei und 1 Feld in 2. Datei sortiert. Aber ich kann keine richtige Syntax für das Verbinden von zwei Feldern in der ersten Datei und nur einem Feld in der zweiten Datei erhalten. Ich muss es auch in einer neuen Datei speichern. Bisher habe ich diesen Befehl, aber es funktioniert nicht.Ich denke, der Fehler ist in "2,3" -Teil, wo ich zwei Felder aus der 1. Datei kombinieren müssen.Join die ursprünglichen sortierten Dateien, enthalten 2 Felder in einer Datei und 1 Feld in der zweiten Datei

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

Können Sie aktualisieren Sie Ihren Beitrag mit Proben der Dateien und erforderliche Ausgabe? –

+0

@IanKenney aktualisiert mit Tabellen, die von den Feldern – Ana

+0

beigetreten werden müssen Was ist die erwartete Ausgabe? – dawg

Antwort

1

können Sie

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

wo

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

Es funktioniert, danke – Ana

1

Hier ein awk ist:

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