2016-08-15 2 views
0

Я 2 табуляцией файлы (отсортированных), что я пытаюсь внутреннее соединение:UNIX Регистрация Команда не работает

Файл 1:

01130164254  01/29/2008 
01130165543  05/16/2011 
01130168864  07/14/2009 
01635163349  11/24/2009 

Файл 2:

0.11 73379268872 
0.64 67119603398 
0.65 67261704102 
16.11 01635163349 

В 2-й столбец второго файла и 1-й столбец первого файла - это общие столбцы, на основе которых я хочу присоединиться к файлам. Когда я пробовал команду:

join -t" " -1 1 -2 1 File 1 File 2 

У меня нет выхода. Но когда я пытаюсь эта команда:

join -t" " -a 2 -a 1 -e 'NULL' -o '0,1.1,1.2,2.1,2.2' File1 File2 

Я получаю результат из этого, который, к сожалению, означает, что UNIX не найти общий ключ для файлов, чтобы присоединиться, и это удивительно, потому что есть общие ценности между файлами , Это как образец результата выглядит

01635158332 09/09/2016 01635158332 09/09/2016 NULL NULL NULL 
01635163349 11/24/2009 01635163349 11/24/2009 NULL NULL NULL 
16.11 01635163339 NULL NULL 16.11 01635163339 NULL 
16.11 01635163349 NULL NULL 16.11 01635163349 NULL 

Как вы можете видеть выше, 01635163349 является общим ключом между Файл 1, который имеет даты и файла 2, который имеет стоимость. Таким образом, в идеале должен быть результат

01635163349 11/24/2009 16.11 

Кроме того, File 2 представляет собой полный файл дампа и файл 1 ежедневная дельта-файл.

Есть ли другой способ создать внутреннее соединение между этими двумя файлами? Пожалуйста помоги!!

ответ

0

Ввод join необходимо сортировать на поле, которое вы присоединяетесь к.

sort -t $'\t' "File 2" | 
join -t $'\t' -1 1 -2 1 "File 1" - 
Смежные вопросы