2015-07-22 3 views
1

Может ли кто-нибудь помочь объединить файлы дефферента по общим данным (столбцам)? пожалуйста = (Как скомпилировать файлы или слить

file1.txt 

ID Kg Year 
3454 1000 2010 
3454 1200 2011 
3323 1150 2009 
2332 1000 2011 
3454 1156 201 

file2.txt 

ID Place 
3454 A1 
3323 A2 
2332 A6 
5555 A9 

file 1+2 

ID  Kg Year Place 
3454 1000 2010 A1 
3454 1200 2011 A1 
3323 1150 2009 A2 
2332 1000 2011 A6 
3454 1156 2013 A1 

Так второй файл должен быть подключен к первому. Как вы можете видеть, ID 5555 из файла 2 просто не используется.

Как это сделать в Linux или ....

+4

это было предложено несколько раз в этом месте. Лучше сделайте некоторые исследования, прежде чем спрашивать. Кроме того, обратите внимание, что вы можете [изменить] вопрос, чтобы он выглядел лучше:) – fedorqui

+0

Также проверьте '? Merge' в R –

+0

поиск' [linux] join' Удачи. – shellter

ответ

1

Если вы не заботитесь о поддержании порядка линий, используйте команду karakfa join.

Чтобы сохранить первоначальный порядок строк, использовать AWK

ID Kg Year Place 
3454 1000 2010 A1 
3454 1200 2011 A1 
3323 1150 2009 A2 
2332 1000 2011 A6 
3454 1156 201 A1 
2

Если начать с отсортированных файлов, инструмент join. в вашем случае, вы можете сортировать на лету.

join <(sort file1.txt) <(sort file2.txt) 

заголовки будут объединены как хорошо, но не будет отображаться на вершине. Труба для sort -r

+0

pipe, чтобы 'sort -n', и заголовок вернется к началу. Затем перейдите в 'column -t', чтобы сделать вывод довольно красивым. –

Смежные вопросы