2012-06-27 3 views
1

У меня есть два файла, которые я хочу присоединиться на основе первого поля:UNIX Присоединиться к командной помощи?

FILE1:

sa01^DS0^Pri^PE^Prod^EC 
sa02^D0^App^PE^Prod^EC 
sa03^D0^App^PE^Prod^EC 
sa04^D0^App^PE^Prod^EC 
sa05^D0^App^PE^Prod^EC 
sa06^D0^App^PE^Prod^EC 
sa07^D0^App^PE^Prod^EC 
sa^AS1^ABAP^PE^Prod^EC 
sar^ERS^Enq^PE^Prod^EC 

file2:

sa01^uz006p 
sa02^ua009p 
sa03^ua005p 
sa04^uz002p 
sa05^uz001p 
sa06^uz011p 
sa07^uz012p 
sa^uz016p 
sar^uz019p 

Моя присоединиться к команде:

join -a1 -a2 -t'^' -1 1 -2 1 $FILE1 $FILE2 

Дает мне это:

sa01^DS0^Pri^PE^Prod^EC^uz006p 
sa02^D0^App^PE^Prod^EC^uz009p 
sa03^D0^App^PE^Prod^EC^uz005p 
sa04^D0^App^PE^Prod^EC^uz002p 
sa05^D0^App^PE^Prod^EC^uz001p 
sa06^D0^App^PE^Prod^EC^uz011p 
sa07^D0^App^PE^Prod^EC^uz012p 
sa^uz016p 
sar^ERS^Enq^PE^Prod^EC^uz019p 

Why = (? Я отсортировал оба файла.

+0

Эта команда отлично работает для меня при использовании ваших 2 файлов. –

ответ

1

Файлы должны быть отсортированы с помощью этого:

sort -t'^' -k1,1 

Это делает его рода правильно becuase^является ограничителем =)! Надеюсь, это поможет кому-то еще !!!