Объединение файлов с разделителями табуляции на основе значения столбца - PullRequest
3 голосов
/ 25 июля 2010

Предположим, у меня есть два файла с разделителями табуляции, которые имеют общий столбец.Оба файла имеют строку заголовка, которая дает метку каждому столбцу.Какой простой способ взять объединение двух таблиц, т.е. взять столбцы из A и B, но сделать это в соответствии со значением столбца K?

, например, таблица A может быть:

employee_id  name
123   john
124   mary

и таблица B может быть:

employee_id  age
124  18
123  22

, тогда объединение на основе столбца 1 таблицы A ("employee_id") должно привести к таблице:

employee_id  name  age
123  john  22
124  mary  18

Я хотел бы сделать это с помощью утилит Unix, таких как «вырезать» и т.д., как это можно сделать?

Ответы [ 3 ]

5 голосов
/ 25 июля 2010

вы можете использовать утилиту join, но ваши файлы должны быть отсортированы в первую очередь.

join file1 file2

man join для получения дополнительной информации

4 голосов
/ 25 июля 2010

вот начало. Я оставляю вас для форматирования заголовков по мере необходимости

$ awk 'NR>1{a[$1]=a[$1]" "$2}END{for(i in a)print a[i],i}' tableA.txt tableB.txt
 age employee_id
 john 22 123
 mary 18 124

другой способ

$ join <(sort tableA.txt) <(sort tableB.txt)
123 john 22
124 mary 18
employee_id name age

экспериментируйте с параметрами объединения, когда это необходимо (см. Информационную страницу или справочную страницу)

1 голос
/ 21 августа 2011

Попробуйте:

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