Присоедините два файла на основе столбца

file1:

a, 1 b, 5 c, 2 f, 7 

file2:

 a, 2 f, 9 g, 3 

Я хочу присоединиться к файлу 1 и файлу 2 на основе столбца 1 и получить файл 3, как показано ниже.

file3:

 a, 1, 2 b, 5, - c, 2, - f, 7, 9 g, -, 3 

объединить соответствующие значения, а также сохранить определенные из каждого файла

One Solution collect form web for “Присоедините два файла на основе столбца”

Использование join :

 $ join -t, -a 1 -a 2 -o0,1.2,2.2 -e ' -' file1 file2 a, 1, 2 b, 5, - c, 2, - f, 7, 9 g, -, 3 

Стандартная join будет выполнять реляционную операцию JOIN в двух отсортированных входных файлах.

Используемые здесь флаги говорят утилите ожидать ввод с разделителями-запятыми ( -t, ) и производить вывод для всех записей в обоих файлах ( -a 1 -a 2 , иначе он будет выдавать только выходные данные для строк с соответствующим первым полем). Затем мы запрашиваем поле объединения вместе со вторым столбцом обоих файлов для -o0,1.2,2.2 ( -o0,1.2,2.2 ) и говорим, что любое отсутствующее поле должно быть заменено строкой ␣- (пробел, с -e ' -' ).

Если вход не отсортирован, он должен быть предварительно отсортирован. В оболочках, которые понимают замену процесса с помощью <( ... ) , это мое

 join -t, -a 1 -a 2 -o0,1.2,2.2 -e ' -' <( sort file1 ) <( sort file2 ) 
  • Возможно ли и как объединить идентичные файлы между различными моментальными снимками в файловой системе btrfs?
  • Сравните первый столбец из 2-х файлов на основе второго столбца, используя разделитель;
  • Объединить несколько файлов HTML в обратном порядке?
  • Слияние части ядра - лучший способ?
  • как использовать patch и diff для объединения двух файлов
  • как конкатенировать следующую строку, когда условие истинно awk
  • Слияние файлов - одно и то же имя, другое расширение
  • Объединить 2 файла на основе всех значений первого столбца первого файла
  • Как скопировать / объединить два каталога, и если два файла имеют одинаковое имя, переименуйте более старый, добавив время его модификации
  • Копия Vimdiff выше / ниже
  • Восстановление почтовых сообщений Maildir из резервной копии на другом компьютере (так что соглашения об именах файлов отличаются)
  • Interesting Posts

    Работа с вспомогательными подкомандами последних инструментов CLI

    Заморозьте слайд на внешнем дисплее (проекторе), используя OpenOffice, и используйте ноутбук, чтобы делать другие (секретные) вещи

    При использовании $ hash_array

    Как захватить из интенсивного профессионала в Ubuntu, Fedora, CentOS, используя интерфейс HDMI?

    Как настроить брандмауэр для тестирования веб-приложений на виртуальной машине?

    Как сбросить установку FreeBSD?

    Использовать псевдоним после выдачи команды sudo su

    Тестирование Debian или Debian Sid?

    Подсчитайте количество строк из предыдущей программы

    Не удается подключиться к беспроводной сети

    Как сделать rsync удалять файлы / папки на сервере резервного копирования, которые больше не существуют на главном сервере?

    Как изменить приоритет сетевых интерфейсов?

    Как отправить электронное письмо самому себе на том же локальном компьютере (порт tcp 25)

    Как grep для двух слов с вкладкой между ними

    Удаление нескольких строк в файле

    Linux и Unix - лучшая ОС в мире.