Объединение нескольких столбцов из 2 файлов в один файл - PullRequest
0 голосов
/ 15 апреля 2020

Файл1 выглядит следующим образом

1,mark,phy
2,andrew,chem
3,btet,maths

Файл2 выглядит следующим образом

1,reg-asd-1
2,reg-fgh-2
4,reg-jkl-4

Я хочу, чтобы вывод выглядел следующим образом

1,mark,phy,reg-asd-1
2,andrew,chem,reg-fgh-2
3,btet,maths,
4,,,reg-jkl-4

Я пытался с помощью следующей команды

join -j 1 -t , -o 1.1,1.2,1.3,2.2 file1 file2

Но указанная выше команда оставляет 3-ю строку как file1, так и file2 на выходе. Я хочу, чтобы эти строки также выводились с другими полями в виде пустых значений.

1 Ответ

0 голосов
/ 15 апреля 2020

Вы были очень близки. В терминах реляционной базы данных вам нужно полное внешнее соединение, тогда как join по умолчанию выполняет внутреннее соединение. Измените это с помощью опции -a, примененной к обоим файлам:

$ join -j1 -t, -a1 -a2 -o 0,1.2,1.3,2.2 file1 file2                                            
1,mark,phy,reg-asd-1
2,andrew,chem,reg-fgh-2
3,btet,maths,
4,,,reg-jkl-4

Также обратите внимание на изменение 1.1 на 0 в формате строки; 0 - это поле соединения, которое всегда будет иметь значение, в отличие от 1.1 или 2.1 при выполнении внешних объединений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...